Arm

®

 Cortex

®

-A55 Core

Revision: r2p0

Technical Reference Manual

Non-Confidential

Copyright © 2016–2018, 2022–2023 Arm Limited (or

its affiliates).

All rights reserved.

Issue 02

100442_0200_02_en

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Arm

®

 Cortex

®

-A55 Core

Technical Reference Manual

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Release Information

Document history

Issue

Date

Confidentiality

Change

0000-00

30 September 2016

Confidential

First release for r0p0

0001-00

16 December 2016

Confidential

First release for r0p1

0100-00

23 June 2017

Non-Confidential

First release for r1p0

0100-01

15 December 2017

Non-Confidential

Second release for r1p0

0200-00

30 November 2018

Non-Confidential

First release for r2p0

0200-01

31 August 2022

Non-Confidential

Second release for r2p0

0200-02

14 June 2023

Non-Confidential

Third release for r2p0

Proprietary Notice

This document is protected by copyright and other related rights and the practice or

implementation of the information contained in this document may be protected by one or more

patents or pending patent applications. No part of this document may be reproduced in any form

by any means without the express prior written permission of Arm. No license, express or implied,

by estoppel or otherwise to any intellectual property rights is granted by this document unless

specifically stated.

Your access to the information in this document is conditional upon your acceptance that you

will not use or permit others to use the information for the purposes of determining whether

implementations infringe any third party patents.

THIS DOCUMENT IS PROVIDED “AS IS”. ARM PROVIDES NO REPRESENTATIONS AND NO

WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT LIMITATION,

THE IMPLIED WARRANTIES OF MERCHANTABILITY, SATISFACTORY QUALITY, NON-

INFRINGEMENT OR FITNESS FOR A PARTICULAR PURPOSE WITH RESPECT TO THE

DOCUMENT. For the avoidance of doubt, Arm makes no representation with respect to, and has

undertaken no analysis to identify or understand the scope and content of, patents, copyrights,

trade secrets, or other rights.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

2

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

This document may include technical inaccuracies or typographical errors.

TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL ARM BE LIABLE FOR

ANY DAMAGES, INCLUDING WITHOUT LIMITATION ANY DIRECT, INDIRECT, SPECIAL,

INCIDENTAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES, HOWEVER CAUSED AND

REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF ANY USE OF THIS

DOCUMENT, EVEN IF ARM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

This document consists solely of commercial items. You shall be responsible for ensuring that

any use, duplication or disclosure of this document complies fully with any relevant export laws

and regulations to assure that this document or any portion thereof is not exported, directly

or indirectly, in violation of such export laws. Use of the word “partner” in reference to Arm’s

customers is not intended to create or refer to any partnership relationship with any other

company. Arm may make changes to this document at any time and without notice.

This document may be translated into other languages for convenience, and you agree that if there

is any conflict between the English version of this document and any translation, the terms of the

English version of the Agreement shall prevail.

The Arm corporate logo and words marked with ® or ™ are registered trademarks or trademarks

of Arm Limited (or its affiliates) in the US and/or elsewhere. All rights reserved. Other brands and

names mentioned in this document may be the trademarks of their respective owners. Please

follow Arm’s trademark usage guidelines at 

https://www.arm.com/company/policies/trademarks

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Arm Limited. Company 02557590 registered in England.

110 Fulbourn Road, Cambridge, England CB1 9NJ.

(LES-PRE-20349|version 21.0)

Confidentiality Status

This document is Non-Confidential. The right to use, copy and disclose this document may be

subject to license restrictions in accordance with the terms of the agreement entered into by Arm

and the party that Arm delivered this document to.

Unrestricted Access is an Arm internal classification.

Product Status

The information in this document is Final, that is for a developed product.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

3

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Feedback

Arm welcomes feedback on this product and its documentation. To provide feedback on the

product, create a ticket on 

https://support.developer.arm.com

.

To provide feedback on the document, fill the following survey: 

https://developer.arm.com/

documentation-feedback-survey

.

Inclusive language commitment

Arm values inclusive communities. Arm recognizes that we and our industry have used language

that can be offensive. Arm strives to lead the industry and create change.

Previous issues of this document included language that can be offensive. We have replaced this

language. See 

B. Revisions

 on page 640.

To report offensive language in this document, email 

terms@arm.com

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

4

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Contents

Contents

1. Introduction....................................................................................................................................................19

1.1 Product revision status................................................................................................................................19
1.2 Intended audience........................................................................................................................................19
1.3 Conventions................................................................................................................................................... 19
1.4 Useful resources........................................................................................................................................... 21

2. Functional description.................................................................................................................................23

2.1 Introduction to the Cortex

®

-A55 core....................................................................................................23

2.1.1 About the core.......................................................................................................................................... 23
2.1.2 Features....................................................................................................................................................... 24
2.1.3 Implementation options...........................................................................................................................25
2.1.4 Supported standards and specifications..............................................................................................26
2.1.5 Test features...............................................................................................................................................26
2.1.6 Design tasks............................................................................................................................................... 27
2.1.7 Product revisions.......................................................................................................................................27
2.2 Technical overview....................................................................................................................................... 28
2.2.1 Components............................................................................................................................................... 28
2.2.2 Interfaces.....................................................................................................................................................32
2.2.3 About system control...............................................................................................................................32
2.2.4 About the Generic Timer........................................................................................................................33
2.3 Clocks, resets, and input synchronization...............................................................................................33
2.3.1 About clocks, resets, and input synchronization............................................................................... 33
2.3.2 Asynchronous interface...........................................................................................................................33
2.4 Power management..................................................................................................................................... 34
2.4.1 About power management.....................................................................................................................34
2.4.2 Voltage domains........................................................................................................................................ 34
2.4.3 Power domains.......................................................................................................................................... 35
2.4.4 Architectural clock gating modes..........................................................................................................37
2.4.5 Power control.............................................................................................................................................38
2.4.6 Power modes............................................................................................................................................. 39
2.4.7 Encoding for power modes.................................................................................................................... 43
2.4.8 Power down sequence............................................................................................................................ 43

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

5

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Contents

2.4.9 Debug over powerdown......................................................................................................................... 44
2.5 Memory Management Unit........................................................................................................................44
2.5.1 About the MMU....................................................................................................................................... 44
2.5.2 TLB organization....................................................................................................................................... 46
2.5.3 TLB match process...................................................................................................................................47
2.5.4 Translation table walks.............................................................................................................................48
2.5.5 MMU memory accesses..........................................................................................................................49
2.5.6 Responses................................................................................................................................................... 51
2.5.7 Page Based Hardware Attributes..........................................................................................................53
2.6 L1 memory system.......................................................................................................................................54
2.6.1 About the L1 memory system...............................................................................................................54
2.6.2 Cache behavior..........................................................................................................................................55
2.6.3 L1 instruction memory system.............................................................................................................. 58
2.6.4 L1 data memory system..........................................................................................................................60
2.6.5 Data prefetching........................................................................................................................................63
2.6.6 Direct access to internal memory.........................................................................................................64
2.7 L2 memory system.......................................................................................................................................71
2.7.1 About the L2 memory system...............................................................................................................71
2.7.2 Optional integrated L2 cache................................................................................................................ 72
2.7.3 Support for memory types..................................................................................................................... 72
2.8 Reliability, Availability, and Serviceability (RAS).....................................................................................73
2.8.1 Cache ECC and parity............................................................................................................................. 73
2.8.2 Cache protection behavior..................................................................................................................... 74
2.8.3 Uncorrected errors and data poisoning...............................................................................................76
2.8.4 RAS error types.........................................................................................................................................76
2.8.5 Error synchronization barrier..................................................................................................................78
2.8.6 Error reporting........................................................................................................................................... 79
2.8.7 Error injection............................................................................................................................................ 80
2.9 Generic Interrupt Controller CPU interface...........................................................................................81
2.9.1 About the Generic Interrupt Controller CPU interface................................................................... 81
2.9.2 Bypassing the CPU interface................................................................................................................. 82

3. Register descriptions................................................................................................................................... 83

3.1 AArch32 system registers...........................................................................................................................83
3.1.1 AArch32 registers..................................................................................................................................... 83
3.1.2 AArch32 architectural system register summary...............................................................................84

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

6

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Contents

3.1.3 AArch32 IMPLEMENTATION DEFINED register summary............................................................88
3.1.4 AArch32 registers by functional group................................................................................................89
3.1.5 ACTLR, Auxiliary Control Register........................................................................................................ 95
3.1.6 ACTLR2, Auxiliary Control Register 2..................................................................................................97
3.1.7 ADFSR, Auxiliary Data Fault Status Register......................................................................................98
3.1.8 AHTCR, Auxiliary Hypervisor Translation Control Register.............................................................99
3.1.9 AIDR, Auxiliary ID Register.................................................................................................................. 100
3.1.10 AIFSR, Auxiliary Instruction Fault Status Register........................................................................ 101
3.1.11 AMAIR0, Auxiliary Memory Attribute Indirection Register 0.....................................................102
3.1.12 AMAIR1, Auxiliary Memory Attribute Indirection Register 1.....................................................103
3.1.13 ATTBCR, Auxiliary Translation Table Base Control Register.......................................................103
3.1.14 AVTCR, Auxiliary Virtualized Translation Control Register......................................................... 106
3.1.15 CCSIDR, Cache Size ID Register......................................................................................................107
3.1.16 CLIDR, Cache Level ID Register.......................................................................................................110
3.1.17 CPACR, Architectural Feature Access Control Register.............................................................. 112
3.1.18 CPUACTLR, CPU Auxiliary Control Register................................................................................. 113
3.1.19 CPUCFR, CPU Configuration Register............................................................................................114
3.1.20 CPUECTLR, CPU Extended Control Register................................................................................116
3.1.21 CPUPCR, CPU Private Control Register.........................................................................................120
3.1.22 CPUPMR, CPU Private Mask Register............................................................................................121
3.1.23 CPUPOR, CPU Private Operation Register....................................................................................123
3.1.24 CPUPSELR, CPU Private Selection Register..................................................................................124
3.1.25 CPUPWRCTLR, CPU Power Control Register...............................................................................126
3.1.26 CSSELR, Cache Size Selection Register..........................................................................................128
3.1.27 CTR, Cache Type Register................................................................................................................. 129
3.1.28 DFSR, Data Fault Status Register.....................................................................................................131
3.1.29 DISR, Deferred Interrupt Status Register.......................................................................................133
3.1.30 ERRIDR, Error ID Register................................................................................................................. 137
3.1.31 ERRSELR, Error Record Select Register..........................................................................................138
3.1.32 ERXADDR, Selected Error Record Address Register................................................................... 139
3.1.33 ERXADDR2, Selected Error Record Address Register 2.............................................................139
3.1.34 ERXCTLR, Selected Error Record Control Register......................................................................139
3.1.35 ERXCTLR2, Selected Error Record Control Register 2................................................................139
3.1.36 ERXFR, Selected Error Record Feature Register...........................................................................140
3.1.37 ERXFR2, Selected Error Record Feature Register 2.................................................................... 140
3.1.38 ERXMISC0, Selected Error Miscellaneous Register 0..................................................................140

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

7

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Contents

3.1.39 ERXMISC1, Selected Error Miscellaneous Register 1..................................................................140
3.1.40 ERXMISC2, Selected Error Record Miscellaneous Register 2....................................................141
3.1.41 ERXMISC3, Selected Error Record Miscellaneous Register 3....................................................141
3.1.42 ERXPFGCDN, Selected Error Pseudo Fault Generation Count Down Register.....................141
3.1.43 ERXPFGCTL, Selected Error Pseudo Fault Generation Control Register................................ 142
3.1.44 ERXPFGF, Selected Pseudo Fault Generation Feature Register................................................144
3.1.45 ERXSTATUS, Selected Error Record Primary Status Register.................................................... 145
3.1.46 FCSEIDR, FCSE Process ID Register...............................................................................................145
3.1.47 HACR, Hyp Auxiliary Configuration Register................................................................................ 145
3.1.48 HACTLR, Hyp Auxiliary Control Register....................................................................................... 146
3.1.49 HACTLR2, Hyp Auxiliary Control Register 2.................................................................................149
3.1.50 HADFSR, Hyp Auxiliary Data Fault Status Syndrome Register..................................................150
3.1.51 HAIFSR, Hyp Auxiliary Instruction Fault Status Syndrome Register.........................................150
3.1.52 HAMAIR0, Hyp Auxiliary Memory Attribute Indirection Register 0.........................................151
3.1.53 HAMAIR1, Hyp Auxiliary Memory Attribute Indirection Register 1.........................................152
3.1.54 HCR, Hyp Configuration Register.................................................................................................... 153
3.1.55 HCR2, Hyp Configuration Register 2..............................................................................................154
3.1.56 HSCTLR, Hyp System Control Register..........................................................................................155
3.1.57 HSR, Hyp Syndrome Register........................................................................................................... 156
3.1.58 HTTBR, Hyp Translation Table Base Register................................................................................158
3.1.59 ID_AFR0, Auxiliary Feature Register 0............................................................................................159
3.1.60 ID_DFR0, Debug Feature Register 0.............................................................................................. 159
3.1.61 ID_ISAR0, Instruction Set Attribute Register 0.............................................................................161
3.1.62 ID_ISAR1, Instruction Set Attribute Register 1.............................................................................163
3.1.63 ID_ISAR2, Instruction Set Attribute Register 2.............................................................................165
3.1.64 ID_ISAR3, Instruction Set Attribute Register 3.............................................................................167
3.1.65 ID_ISAR4, Instruction Set Attribute Register 4.............................................................................169
3.1.66 ID_ISAR5, Instruction Set Attribute Register 5.............................................................................171
3.1.67 ID_ISAR6, Instruction Set Attribute Register 6.............................................................................173
3.1.68 ID_MMFR0, Memory Model Feature Register 0..........................................................................174
3.1.69 ID_MMFR1, Memory Model Feature Register 1..........................................................................175
3.1.70 ID_MMFR2, Memory Model Feature Register 2..........................................................................177
3.1.71 ID_MMFR3, Memory Model Feature Register 3..........................................................................179
3.1.72 ID_MMFR4, Memory Model Feature Register 4..........................................................................181
3.1.73 ID_PFR0, Processor Feature Register 0..........................................................................................183
3.1.74 ID_PFR1, Processor Feature Register 1..........................................................................................184

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

8

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Contents

3.1.75 IFSR, Instruction Fault Status Register............................................................................................186
3.1.76 MIDR, Main ID Register..................................................................................................................... 188
3.1.77 MPIDR, Multiprocessor Affinity Register........................................................................................189
3.1.78 PAR, Physical Address Register.........................................................................................................190
3.1.79 REVIDR, Revision ID Register........................................................................................................... 196
3.1.80 SCR, Secure Configuration Register................................................................................................ 196
3.1.81 SCTLR, System Control Register...................................................................................................... 197
3.1.82 SDCR, Secure Debug Control Register...........................................................................................200
3.1.83 TTBCR, Translation Table Base Control Register.......................................................................... 202
3.1.84 TTBCR2, Translation Table Base Control Register 2....................................................................207
3.1.85 TTBR0, Translation Table Base Register 0......................................................................................210
3.1.86 TTBR1, Translation Table Base Register 1......................................................................................211
3.1.87 VDFSR, Virtual SError Exception Syndrome Register..................................................................213
3.1.88 VDISR, Virtual Deferred Interrupt Status Register.......................................................................214
3.1.89 VMPIDR, Virtualization Multiprocessor ID Register.....................................................................218
3.1.90 VPIDR, Virtualization Processor ID Register..................................................................................218
3.1.91 VTCR, Virtualization Translation Control Register........................................................................ 218
3.1.92 VTTBR, Virtualization Translation Table Base Register................................................................220
3.2 AArch64 system registers........................................................................................................................221
3.2.1 AArch64 registers...................................................................................................................................221
3.2.2 AArch64 architectural system register summary............................................................................ 222
3.2.3 AArch64 implementation defined register summary......................................................................227
3.2.4 AArch64 registers by functional group............................................................................................. 228
3.2.5 ACTLR_EL1, Auxiliary Control Register, EL1....................................................................................234
3.2.6 ACTLR_EL2, Auxiliary Control Register, EL2....................................................................................235
3.2.7 ACTLR_EL3, Auxiliary Control Register, EL3....................................................................................238
3.2.8 AFSR0_EL1, Auxiliary Fault Status Register 0, EL1........................................................................ 240
3.2.9 AFSR0_EL2, Auxiliary Fault Status Register 0, EL2........................................................................ 241
3.2.10 AFSR0_EL3, Auxiliary Fault Status Register 0, EL3......................................................................242
3.2.11 AFSR1_EL1, Auxiliary Fault Status Register 1, EL1......................................................................243
3.2.12 AFSR1_EL2, Auxiliary Fault Status Register 1, EL2......................................................................243
3.2.13 AFSR1_EL3, Auxiliary Fault Status Register 1, EL3......................................................................244
3.2.14 AIDR_EL1, Auxiliary ID Register, EL1..............................................................................................245
3.2.15 AMAIR_EL1, Auxiliary Memory Attribute Indirection Register, EL1.........................................246
3.2.16 AMAIR_EL2, Auxiliary Memory Attribute Indirection Register, EL2.........................................247
3.2.17 AMAIR_EL3, Auxiliary Memory Attribute Indirection Register, EL3.........................................248

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

9

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Contents

3.2.18 ATCR_EL1, Auxiliary Translation Control Register, EL1...............................................................248
3.2.19 ATCR_EL12, Alias to Auxiliary Translation Control Register EL1..............................................251
3.2.20 ATCR_EL2, Auxiliary Translation Control Register, EL2...............................................................252
3.2.21 ATCR_EL3, Auxiliary Translation Control Register, EL3...............................................................254
3.2.22 AVTCR_EL2, Auxiliary Virtualized Translation Control Register, EL2....................................... 256
3.2.23 CCSIDR_EL1, Cache Size ID Register, EL1....................................................................................257
3.2.24 CLIDR_EL1, Cache Level ID Register, EL1.....................................................................................260
3.2.25 CPACR_EL1, Architectural Feature Access Control Register, EL1............................................ 261
3.2.26 CPTR_EL2, Architectural Feature Trap Register, EL2...................................................................263
3.2.27 CPTR_EL3, Architectural Feature Trap Register, EL3...................................................................263
3.2.28 CPUACTLR_EL1, CPU Auxiliary Control Register, EL1............................................................... 265
3.2.29 CPUCFR_EL1, CPU Configuration Register, EL1..........................................................................266
3.2.30 CPUECTLR_EL1, CPU Extended Control Register, EL1..............................................................268
3.2.31 CPUPCR_EL3, CPU Private Control Register, EL3.......................................................................272
3.2.32 CPUPMR_EL3, CPU Private Mask Register, EL3..........................................................................273
3.2.33 CPUPOR_EL3, CPU Private Operation Register, EL3..................................................................275
3.2.34 CPUPSELR_EL3, CPU Private Selection Register, EL3................................................................276
3.2.35 CPUPWRCTLR_EL1, Power Control Register, EL1...................................................................... 278
3.2.36 CSSELR_EL1, Cache Size Selection Register, EL1........................................................................280
3.2.37 CTR_EL0, Cache Type Register, EL0...............................................................................................282
3.2.38 DCZID_EL0, Data Cache Zero ID Register, EL0...........................................................................284
3.2.39 DISR_EL1, Deferred Interrupt Status Register, EL1.....................................................................284
3.2.40 ERRIDR_EL1, Error ID Register, EL1............................................................................................... 286
3.2.41 ERRSELR_EL1, Error Record Select Register, EL1........................................................................287
3.2.42 ERXADDR_EL1, Selected Error Record Address Register, EL1................................................. 288
3.2.43 ERXCTLR_EL1, Selected Error Record Control Register, EL1....................................................288
3.2.44 ERXFR_EL1, Selected Error Record Feature Register, EL1.........................................................288
3.2.45 ERXMISC0_EL1, Selected Error Record Miscellaneous Register 0, EL1..................................288
3.2.46 ERXMISC1_EL1, Selected Error Record Miscellaneous Register 1, EL1..................................289
3.2.47 ERXPFGCDN_EL1, Selected Error Pseudo Fault Generation Count Down Register, EL1....289
3.2.48 ERXPFGCTL_EL1, Selected Error Pseudo Fault Generation Control Register, EL1...............290
3.2.49 ERXPFGF_EL1, Selected Pseudo Fault Generation Feature Register, EL1..............................292
3.2.50 ERXSTATUS_EL1, Selected Error Record Primary Status Register, EL1.................................. 293
3.2.51 ESR_EL1, Exception Syndrome Register, EL1................................................................................293
3.2.52 ESR_EL2, Exception Syndrome Register, EL2................................................................................295
3.2.53 ESR_EL3, Exception Syndrome Register, EL3................................................................................296

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

10

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Contents

3.2.54 HACR_EL2, Hyp Auxiliary Configuration Register, EL2.............................................................. 297
3.2.55 HCR_EL2, Hypervisor Configuration Register, EL2......................................................................298
3.2.56 HPFAR_EL2, Hypervisor IPA Fault Address Register, EL2..........................................................301
3.2.57 ID_AA64DFR0_EL1, AArch64 Debug Feature Register 0, EL1................................................ 302
3.2.58 ID_AA64ISAR0_EL1, AArch64 Instruction Set Attribute Register 0, EL1............................... 303
3.2.59 ID_AA64ISAR1_EL1, AArch64 Instruction Set Attribute Register 1, EL1............................... 305
3.2.60 ID_AA64MMFR0_EL1, AArch64 Memory Model Feature Register 0, EL1............................ 306
3.2.61 ID_AA64MMFR1_EL1, AArch64 Memory Model Feature Register 1, EL1............................ 308
3.2.62 ID_AA64MMFR2_EL1, AArch64 Memory Model Feature Register 2, EL1............................ 310
3.2.63 ID_AA64PFR0_EL1, AArch64 Processor Feature Register 0, EL1............................................311
3.2.64 ID_AA64PFR1_EL1, AArch64 Processor Feature Register 1, EL1............................................313
3.2.65 ID_AFR0_EL1, AArch32 Auxiliary Feature Register 0, EL1........................................................314
3.2.66 ID_DFR0_EL1, AArch32 Debug Feature Register 0, EL1...........................................................315
3.2.67 ID_ISAR0_EL1, AArch32 Instruction Set Attribute Register 0, EL1......................................... 317
3.2.68 ID_ISAR1_EL1, AArch32 Instruction Set Attribute Register 1, EL1......................................... 319
3.2.69 ID_ISAR2_EL1, AArch32 Instruction Set Attribute Register 2, EL1......................................... 321
3.2.70 ID_ISAR3_EL1, AArch32 Instruction Set Attribute Register 3, EL1......................................... 323
3.2.71 ID_ISAR4_EL1, AArch32 Instruction Set Attribute Register 4, EL1......................................... 325
3.2.72 ID_ISAR5_EL1, AArch32 Instruction Set Attribute Register 5, EL1......................................... 327
3.2.73 ID_ISAR6_EL1, AArch32 Instruction Set Attribute Register 6, EL1......................................... 329
3.2.74 ID_MMFR0_EL1, AArch32 Memory Model Feature Register 0, EL1.......................................330
3.2.75 ID_MMFR1_EL1, AArch32 Memory Model Feature Register 1, EL1.......................................332
3.2.76 ID_MMFR2_EL1, AArch32 Memory Model Feature Register 2, EL1.......................................334
3.2.77 ID_MMFR3_EL1, AArch32 Memory Model Feature Register 3, EL1.......................................337
3.2.78 ID_MMFR4_EL1, AArch32 Memory Model Feature Register 4, EL1.......................................339
3.2.79 ID_PFR0_EL1, AArch32 Processor Feature Register 0, EL1...................................................... 341
3.2.80 ID_PFR1_EL1, AArch32 Processor Feature Register 1, EL1...................................................... 342
3.2.81 ID_PFR2_EL1, AArch32 Processor Feature Register 2, EL1...................................................... 344
3.2.82 IFSR32_EL2, Instruction Fault Status Register, EL2.....................................................................346
3.2.83 LORC_EL1, LORegion Control Register, EL1.................................................................................348
3.2.84 LOREA_EL1, LORegion End Address Register, EL1..................................................................... 349
3.2.85 LORID_EL1, Limited Order Region Identification Register, EL1................................................ 349
3.2.86 LORN_EL1, LORegion Number Register, EL1............................................................................... 350
3.2.87 LORSA_EL1, LORegion Start Address Register, EL1....................................................................351
3.2.88 MDCR_EL3, Monitor Debug Configuration Register, EL3..........................................................352
3.2.89 MIDR_EL1, Main ID Register, EL1...................................................................................................354

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

11

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Contents

3.2.90 MPIDR_EL1, Multiprocessor Affinity Register, EL1......................................................................356
3.2.91 PAR_EL1, Physical Address Register, EL1...................................................................................... 358
3.2.92 REVIDR_EL1, Revision ID Register, EL1.........................................................................................358
3.2.93 RVBAR_EL3, Reset Vector Base Address Register, EL3..............................................................359
3.2.94 SCTLR_EL1, System Control Register, EL1.................................................................................... 360
3.2.95 SCTLR_EL2, System Control Register, EL2.................................................................................... 361
3.2.96 SCTLR_EL3, System Control Register, EL3.................................................................................... 362
3.2.97 TCR_EL1, Translation Control Register, EL1.................................................................................. 363
3.2.98 TCR_EL2, Translation Control Register, EL2.................................................................................. 365
3.2.99 TCR_EL3, Translation Control Register, EL3.................................................................................. 368
3.2.100 TTBR0_EL1, Translation Table Base Register 0, EL1.................................................................370
3.2.101 TTBR0_EL2, Translation Table Base Register 0, EL2.................................................................371
3.2.102 TTBR0_EL3, Translation Table Base Register 0, EL3.................................................................372
3.2.103 TTBR1_EL1, Translation Table Base Register 1, EL1.................................................................373
3.2.104 TTBR1_EL2, Translation Table Base Register 1, EL2.................................................................375
3.2.105 VDISR_EL2, Virtual Deferred Interrupt Status Register, EL2...................................................375
3.2.106 VMPIDR_EL2, Virtualization Multiprocessor ID Register, EL2................................................ 379
3.2.107 VPIDR_EL2, Virtualization Processor ID Register, EL2............................................................. 380
3.2.108 VSESR_EL2, Virtual SError Exception Syndrome Register....................................................... 381
3.2.109 VTCR_EL2, Virtualization Translation Control Register, EL2....................................................382
3.2.110 VTTBR_EL2, Virtualization Translation Table Base Register, EL2............................................384
3.3 Error System registers...............................................................................................................................384
3.3.1 Error System register summary...........................................................................................................385
3.3.2 ERR0ADDR, Error Record Address Register.................................................................................... 386
3.3.3 ERR0CTLR, Error Record Control Register.......................................................................................386
3.3.4 ERR0FR, Error Record Feature Register............................................................................................388
3.3.5 ERR0MISC0, Error Record Miscellaneous Register 0.....................................................................390
3.3.6 ERR0MISC1, Error Record Miscellaneous Register 1.....................................................................392
3.3.7 ERR0PFGCDN, Error Pseudo Fault Generation Count Down Register..................................... 392
3.3.8 ERR0PFGCTL, Error Pseudo Fault Generation Control Register.................................................393
3.3.9 ERR0PFGF, Error Pseudo Fault Generation Feature Register...................................................... 395
3.3.10 ERR0STATUS, Error Record Primary Status Register...................................................................397
3.4 GIC registers................................................................................................................................................400
3.4.1 CPU interface registers.........................................................................................................................400
3.4.2 AArch32 physical GIC CPU interface system register summary................................................. 401
3.4.3 ICC_AP0R0, Interrupt Controller Active Priorities Group 0 Register 0......................................401

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

12

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Contents

3.4.4 ICC_AP1R0, Interrupt Controller Active Priorities Group 1 Register 0......................................402
3.4.5 ICC_BPR0, Interrupt Controller Binary Point Register 0............................................................... 402
3.4.6 ICC_BPR1, Interrupt Controller Binary Point Register 1............................................................... 403
3.4.7 ICC_CTLR, Interrupt Controller Control Register............................................................................404
3.4.8 ICC_HSRE, Interrupt Controller Hyp System Register Enable Register......................................407
3.4.9 ICC_MCTLR, Interrupt Controller Monitor Control Register........................................................408
3.4.10 ICC_MSRE, Interrupt Controller Monitor System Register Enable Register........................... 411
3.4.11 ICC_SRE, Interrupt Controller System Register Enable Register...............................................412
3.4.12 AArch32 virtual GIC CPU interface register summary................................................................414
3.4.13 ICV_AP0R0, Interrupt Controller Virtual Active Priorities Group 0 Register 0...................... 414
3.4.14 ICV_AP1R0, Interrupt Controller Virtual Active Priorities Group 1 Register 0...................... 415
3.4.15 ICV_BPR0, Interrupt Controller Virtual Binary Point Register 0................................................415
3.4.16 ICV_BPR1, Interrupt Controller Virtual Binary Point Register 1................................................416
3.4.17 ICV_CTLR, Interrupt Controller Virtual Control Register............................................................417
3.4.18 AArch32 virtual interface control system register summary......................................................419
3.4.19 ICH_AP0R0, Interrupt Controller Hyp Active Priorities Group 0 Register 0.......................... 420
3.4.20 ICH_AP1R0, Interrupt Controller Hyp Active Priorities Group 1 Register 0.......................... 420
3.4.21 ICH_HCR, Interrupt Controller Hyp Control Register................................................................. 421
3.4.22 ICH_VMCR, Interrupt Controller Virtual Machine Control Register.........................................424
3.4.23 ICH_VTR, Interrupt Controller VGIC Type Register.....................................................................426
3.4.24 AArch64 physical GIC CPU interface System register summary.............................................. 428
3.4.25 ICC_AP0R0_EL1, Interrupt Controller Active Priorities Group 0 Register 0, EL1..................428
3.4.26 ICC_AP1R0_EL1, Interrupt Controller Active Priorities Group 1 Register 0 EL1.................. 429
3.4.27 ICC_BPR0_EL1, Interrupt Controller Binary Point Register 0, EL1...........................................430
3.4.28 ICC_BPR1_EL1, Interrupt Controller Binary Point Register 1, EL1...........................................431
3.4.29 ICC_CTLR_EL1, Interrupt Controller Control Register, EL1....................................................... 432
3.4.30 ICC_CTLR_EL3, Interrupt Controller Control Register, EL3....................................................... 434
3.4.31 ICC_SRE_EL1, Interrupt Controller System Register Enable Register, EL1............................. 436
3.4.32 ICC_SRE_EL2, Interrupt Controller System Register Enable register, EL2.............................. 438
3.4.33 ICC_SRE_EL3, Interrupt Controller System Register Enable register, EL3.............................. 439
3.4.34 AArch64 virtual GIC CPU interface register summary................................................................441
3.4.35 ICV_AP0R0_EL1, Interrupt Controller Virtual Active Priorities Group 0 Register 0, EL1.... 441
3.4.36 ICV_AP1R0_EL1, Interrupt Controller Virtual Active Priorities Group 1 Register 0, EL1.... 442
3.4.37 ICV_BPR0_EL1, Interrupt Controller Virtual Binary Point Register 0, EL1..............................442
3.4.38 ICV_BPR1_EL1, Interrupt Controller Virtual Binary Point Register 1, EL1..............................443
3.4.39 ICV_CTLR_EL1, Interrupt Controller Virtual Control Register, EL1.......................................... 444

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

13

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Contents

3.4.40 AArch64 virtual interface control System register summary..................................................... 446
3.4.41 ICH_AP0R0_EL2, Interrupt Controller Hyp Active Priorities Group 0 Register 0, EL2.........447
3.4.42 ICH_AP1R0_EL2, Interrupt Controller Hyp Active Priorities Group 1 Register 0, EL2.........447
3.4.43 ICH_HCR_EL2, Interrupt Controller Hyp Control Register, EL2............................................... 448
3.4.44 ICH_VMCR_EL2, Interrupt Controller Virtual Machine Control Register, EL2.......................451
3.4.45 ICH_VTR_EL2, Interrupt Controller VGIC Type Register, EL2...................................................453

4. Debug descriptions....................................................................................................................................456

4.1 Debug............................................................................................................................................................456
4.1.1 About debug methods.......................................................................................................................... 456
4.1.2 Debug functional description.............................................................................................................. 457
4.1.3 Debug register interfaces..................................................................................................................... 459
4.1.4 Debug events.......................................................................................................................................... 461
4.1.5 External debug interface.......................................................................................................................461
4.2 Performance Monitor Unit.......................................................................................................................462
4.2.1 About the PMU...................................................................................................................................... 462
4.2.2 PMU functional description................................................................................................................. 462
4.2.3 External register access permissions to the PMU registers..........................................................462
4.2.4 PMU events............................................................................................................................................. 463
4.2.5 PMU interrupts....................................................................................................................................... 477
4.2.6 Exporting PMU events..........................................................................................................................478
4.3 Embedded Trace Macrocell......................................................................................................................478
4.3.1 About the ETM.......................................................................................................................................478
4.3.2 ETM trace unit generation options and resources......................................................................... 478
4.3.3 ETM trace unit functional description...............................................................................................479
4.3.4 Resetting the ETM................................................................................................................................. 481
4.3.5 Programming and reading ETM trace unit registers.......................................................................481
4.3.6 ETM trace unit register interfaces......................................................................................................482
4.3.7 Interaction with the PMU and Debug...............................................................................................483

5. Debug registers.......................................................................................................................................... 484

5.1 AArch32 Debug Registers....................................................................................................................... 484
5.1.1 AArch32 debug register summary......................................................................................................484
5.1.2 DBGBCR, Debug Breakpoint Control Registers..............................................................................487
5.1.3 DBGDEVID, Debug Device ID Register............................................................................................490
5.1.4 DBGDEVID1, Debug Device ID Register 1..................................................................................... 491
5.1.5 DBGDIDR, Debug ID Register............................................................................................................ 492

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

14

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Contents

5.1.6 DBGWCR, Debug Watchpoint Control Registers...........................................................................493
5.2 AArch64 debug registers......................................................................................................................... 495
5.2.1 AArch64 Debug register summary.....................................................................................................495
5.2.2 DBGBCRn_EL1, Debug Breakpoint Control Registers, EL1......................................................... 497
5.2.3 DBGCLAIMSET_EL1, Debug Claim Tag Set Register, EL1............................................................500
5.2.4 DBGWCRn_EL1, Debug Watchpoint Control Registers, EL1...................................................... 501
5.2.5 MDSCR_EL1, Monitor Debug System Control Register, EL1.......................................................504
5.3 Memory-mapped Debug registers.........................................................................................................508
5.3.1 Memory-mapped Debug register summary..................................................................................... 508
5.3.2 EDCIDR0, External Debug Component Identification Register 0............................................... 511
5.3.3 EDCIDR1, External Debug Component Identification Register 1............................................... 511
5.3.4 EDCIDR2, External Debug Component Identification Register 2............................................... 512
5.3.5 EDCIDR3, External Debug Component Identification Register 3............................................... 513
5.3.6 EDDEVID, External Debug Device ID Register 0...........................................................................514
5.3.7 EDDEVID1, External Debug Device ID Register 1........................................................................ 515
5.3.8 EDDFR, External Debug Feature Register........................................................................................515
5.3.9 EDITCTRL, External Debug Integration Mode Control Register..................................................517
5.3.10 EDPFR, External Debug Processor Feature Register...................................................................518
5.3.11 EDPIDR0, External Debug Peripheral Identification Register 0................................................ 519
5.3.12 EDPIDR1, External Debug Peripheral Identification Register 1................................................ 520
5.3.13 EDPIDR2, External Debug Peripheral Identification Register 2................................................ 521
5.3.14 EDPIDR3, External Debug Peripheral Identification Register 3................................................ 521
5.3.15 EDPIDR4, External Debug Peripheral Identification Register 4................................................ 522
5.3.16 EDPIDRn, External Debug Peripheral Identification Registers 5-7...........................................523
5.3.17 EDRCR, External Debug Reserve Control Register......................................................................523
5.4 AArch32 PMU Registers.......................................................................................................................... 525
5.4.1 AArch32 PMU register summary........................................................................................................525
5.4.2 PMCEID0, Performance Monitors Common Event Identification Register 0............................526
5.4.3 PMCEID1, Performance Monitors Common Event Identification Register 1............................529
5.4.4 PMCR, Performance Monitors Control Register............................................................................. 531
5.5 AArch64 PMU registers........................................................................................................................... 534
5.5.1 AArch64 PMU register summary........................................................................................................534
5.5.2 PMCEID0_EL0, Performance Monitors Common Event Identification Register 0, EL0..........536
5.5.3 PMCEID1_EL0, Performance Monitors Common Event Identification Register 1, EL0..........539
5.5.4 PMCR_EL0, Performance Monitors Control Register, EL0........................................................... 541
5.6 Memory-mapped PMU registers............................................................................................................544

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

15

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Contents

5.6.1 Memory-mapped PMU register summary........................................................................................ 544
5.6.2 PMCFGR, Performance Monitors Configuration Register.............................................................547
5.6.3 PMCIDR0, Performance Monitors Component Identification Register 0.................................. 548
5.6.4 PMCIDR1, Performance Monitors Component Identification Register 1.................................. 549
5.6.5 PMCIDR2, Performance Monitors Component Identification Register 2.................................. 550
5.6.6 PMCIDR3, Performance Monitors Component Identification Register 3.................................. 550
5.6.7 PMPIDR0, Performance Monitors Peripheral Identification Register 0......................................551
5.6.8 PMPIDR1, Performance Monitors Peripheral Identification Register 1......................................552
5.6.9 PMPIDR2, Performance Monitors Peripheral Identification Register 2......................................553
5.6.10 PMPIDR3, Performance Monitors Peripheral Identification Register 3................................... 553
5.6.11 PMPIDR4, Performance Monitors Peripheral Identification Register 4................................... 554
5.6.12 PMPIDRn, Performance Monitors Peripheral Identification Register 5-7................................555
5.7 PMU snapshot registers........................................................................................................................... 555
5.7.1 PMU snapshot register summary....................................................................................................... 555
5.7.2 PMPCSSR, PMU Snapshot Program Counter Sample Register....................................................556
5.7.3 PMCIDSSR, PMU Snapshot CONTEXTIDR_EL1 Sample Register..............................................557
5.7.4 PMCID2SSR, PMU Snapshot CONTEXTIDR_EL2 Sample Register............................................557
5.7.5 PMSSSR, PMU Snapshot Status Register......................................................................................... 557
5.7.6 PMOVSSR, PMU Snapshot Overflow Status Register................................................................... 558
5.7.7 PMCCNTSR, PMU Snapshot Cycle Counter Register................................................................... 559
5.7.8 PMEVCNTSRn, PMU Snapshot Cycle Counter Registers 0-5..................................................... 559
5.7.9 PMSSCR, PMU Snapshot Capture Register..................................................................................... 559
5.8 ETM registers..............................................................................................................................................560
5.8.1 ETM register summary..........................................................................................................................560
5.8.2 TRCACATRn, Address Comparator Access Type Registers 0-7.................................................. 563
5.8.3 TRCACVRn, Address Comparator Value Registers 0-7................................................................. 565
5.8.4 TRCAUTHSTATUS, Authentication Status Register....................................................................... 565
5.8.5 TRCAUXCTLR, Auxiliary Control Register........................................................................................ 566
5.8.6 TRCBBCTLR, Branch Broadcast Control Register...........................................................................568
5.8.7 TRCCCCTLR, Cycle Count Control Register....................................................................................569
5.8.8 TRCCIDCCTLR0, Context ID Comparator Control Register 0.....................................................570
5.8.9 TRCCIDCVR0, Context ID Comparator Value Register 0.............................................................571
5.8.10 TRCCIDR0, ETM Component Identification Register 0.............................................................. 571
5.8.11 TRCCIDR1, ETM Component Identification Register 1.............................................................. 572
5.8.12 TRCCIDR2, ETM Component Identification Register 2.............................................................. 573
5.8.13 TRCCIDR3, ETM Component Identification Register 3.............................................................. 573

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

16

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Contents

5.8.14 TRCCLAIMCLR, Claim Tag Clear Register......................................................................................574
5.8.15 TRCCLAIMSET, Claim Tag Set Register.......................................................................................... 575
5.8.16 TRCCNTCTLR0, Counter Control Register 0................................................................................ 575
5.8.17 TRCCNTCTLR1, Counter Control Register 1................................................................................ 577
5.8.18 TRCCNTRLDVRn, Counter Reload Value Registers 0-1............................................................. 579
5.8.19 TRCCNTVRn, Counter Value Registers 0-1...................................................................................579
5.8.20 TRCCONFIGR, Trace Configuration Register................................................................................ 580
5.8.21 TRCDEVAFF0, Device Affinity Register 0......................................................................................583
5.8.22 TRCDEVAFF1, Device Affinity Register 1......................................................................................583
5.8.23 TRCDEVARCH, Device Architecture Register...............................................................................583
5.8.24 TRCDEVID, Device ID Register........................................................................................................584
5.8.25 TRCDEVTYPE, Device Type Register..............................................................................................585
5.8.26 TRCEVENTCTL0R, Event Control 0 Register................................................................................585
5.8.27 TRCEVENTCTL1R, Event Control 1 Register................................................................................587
5.8.28 TRCEXTINSELR, External Input Select Register........................................................................... 589
5.8.29 TRCIDR0, ID Register 0..................................................................................................................... 590
5.8.30 TRCIDR1, ID Register 1..................................................................................................................... 592
5.8.31 TRCIDR2, ID Register 2..................................................................................................................... 593
5.8.32 TRCIDR3, ID Register 3..................................................................................................................... 594
5.8.33 TRCIDR4, ID Register 4..................................................................................................................... 596
5.8.34 TRCIDR5, ID Register 5..................................................................................................................... 598
5.8.35 TRCIDR8, ID Register 8..................................................................................................................... 599
5.8.36 TRCIDR9, ID Register 9..................................................................................................................... 600
5.8.37 TRCIDR10, ID Register 10................................................................................................................ 600
5.8.38 TRCIDR11, ID Register 11................................................................................................................ 601
5.8.39 TRCIDR12, ID Register 12................................................................................................................ 601
5.8.40 TRCIDR13, ID Register 13................................................................................................................ 602
5.8.41 TRCIMSPEC0, IMPLEMENTATION SPECIFIC Register 0.......................................................... 602
5.8.42 TRCITATBIDR, Integration ATB Identification Register...............................................................603
5.8.43 TRCITCTRL, Integration Mode Control Register...........................................................................604
5.8.44 TRCITIATBINR, Integration Instruction ATB In Register.............................................................605
5.8.45 TRCITIATBOUTR, Integration Instruction ATB Out Register.................................................... 605
5.8.46 TRCITIDATAR, Integration Instruction ATB Data Register.........................................................606
5.8.47 TRCLAR, Software Lock Access Register....................................................................................... 607
5.8.48 TRCLSR, Software Lock Status Register......................................................................................... 608
5.8.49 TRCOSLAR, OS Lock Access Register.............................................................................................609

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

17

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Contents

5.8.50 TRCOSLSR, OS Lock Status Register.............................................................................................. 609
5.8.51 TRCPDCR, Power Down Control Register.....................................................................................611
5.8.52 TRCPDSR, Power Down Status Register........................................................................................611
5.8.53 TRCPIDR0, ETM Peripheral Identification Register 0..................................................................613
5.8.54 TRCPIDR1, ETM Peripheral Identification Register 1..................................................................613
5.8.55 TRCPIDR2, ETM Peripheral Identification Register 2..................................................................614
5.8.56 TRCPIDR3, ETM Peripheral Identification Register 3..................................................................615
5.8.57 TRCPIDR4, ETM Peripheral Identification Register 4..................................................................616
5.8.58 TRCPIDRn, ETM Peripheral Identification Registers 5-7............................................................ 616
5.8.59 TRCPRGCTLR, Programming Control Register..............................................................................617
5.8.60 TRCRSCTLRn, Resource Selection Control Registers 2-15........................................................617
5.8.61 TRCSEQEVRn, Sequencer State Transition Control Registers 0-2........................................... 619
5.8.62 TRCSEQRSTEVR, Sequencer Reset Control Register..................................................................620
5.8.63 TRCSEQSTR, Sequencer State Register......................................................................................... 621
5.8.64 TRCSSCCR0, Single-Shot Comparator Control Register 0.........................................................622
5.8.65 TRCSSCSR0, Single-Shot Comparator Status Register 0............................................................623
5.8.66 TRCSTALLCTLR, Stall Control Register...........................................................................................624
5.8.67 TRCSTATR, Status Register............................................................................................................... 625
5.8.68 TRCSYNCPR, Synchronization Period Register.............................................................................626
5.8.69 TRCTRACEIDR, Trace ID Register................................................................................................... 626
5.8.70 TRCTSCTLR, Global Timestamp Control Register........................................................................627
5.8.71 TRCVICTLR, ViewInst Main Control Register................................................................................628
5.8.72 TRCVIIECTLR, ViewInst Include-Exclude Control Register........................................................ 630
5.8.73 TRCVISSCTLR, ViewInst Start-Stop Control Register..................................................................631
5.8.74 TRCVMIDCVR0, VMID Comparator Value Register 0................................................................632
5.8.75 TRCVMIDCCTLR0, Virtual context identifier Comparator Control Register 0.......................633

A. AArch32 UNPREDICTABLE Behaviors................................................................................................ 634

A.1 Use of R15 by Instruction.......................................................................................................................634
A.2 UNPREDICTABLE instructions within an IT Block............................................................................ 634
A.3 Load/Store accesses crossing page boundaries..................................................................................634
A.4 Arm

®

v8‑A Debug UNPREDICTABLE behaviors................................................................................ 635

A.5 Other UNPREDICTABLE behaviors...................................................................................................... 638

B. Revisions...................................................................................................................................................... 640

B.1 Revisions.......................................................................................................................................................640

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

18

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Introduction

1. Introduction

1.1 Product revision status

The r

x

p

y

 identifier indicates the revision status of the product described in this manual, for

example, r

1

p

2

, where:

r

x

Identifies the major revision of the product, for example, r1.

p

y

Identifies the minor revision or modification status of the product, for

example, p2.

1.2 Intended audience

This manual is for system designers, system integrators, and programmers who are designing or

programming a 

System on Chip

 (SoC) that uses an Arm core.

1.3 Conventions

The following subsections describe conventions used in Arm documents.

Glossary

The Arm

®

 Glossary is a list of terms used in Arm documentation, together with definitions for

those terms. The Arm Glossary does not contain terms that are industry standard unless the Arm

meaning differs from the generally accepted meaning.

See the Arm Glossary for more information: 

developer.arm.com/glossary

.

Convention

Use

italic

Citations.

bold

Terms in descriptive lists, where appropriate.

monospace

Text that you can enter at the keyboard, such as commands, file and program names, and source code.

monospace underline

A permitted abbreviation for a command or option. You can enter the underlined text instead of the full

command or option name.

<and>

Encloses replaceable terms for assembler syntax where they appear in code or code fragments.

For example:

MRC p15, 0, <Rd>, <CRn>, <CRm>, <Opcode_2>

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

19

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Introduction

Convention

Use

SMALL CAPITALS

Terms that have specific technical meanings as defined in the 

Arm

®

 Glossary

. For example,

IMPLEMENTATION DEFINED

IMPLEMENTATION SPECIFIC

UNKNOWN

, and 

UNPREDICTABLE

.

Recommendations. Not following these recommendations might lead to system

failure or damage.

Requirements for the system. Not following these requirements might result in

system failure or damage.

Requirements for the system. Not following these requirements will result in system

failure or damage.

An important piece of information that needs your attention.

A useful tip that might make it easier, better or faster to perform a task.

A reminder of something important that relates to the information you are reading.

Timing diagrams

The following figure explains the components used in timing diagrams. Variations, when they occur,

have clear labels. You must not assume any timing information that is not explicit in the diagrams.

Shaded bus and signal areas are undefined, so the bus or signal can assume any value within the

shaded area at that time. The actual level is unimportant and does not affect normal operation.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

20

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Introduction

Figure 1-1: Key to timing diagram conventions

Signals

The signal conventions are:

Signal level

The level of an asserted signal depends on whether the signal is active-HIGH or active-LOW.

Asserted means:
• HIGH for active-HIGH signals.
• LOW for active-LOW signals.

Lowercase n

At the start or end of a signal name, n denotes an active-LOW signal.

1.4 Useful resources

This document contains information that is specific to this product. See the following resources for

other useful information.

Access to Arm documents depends on their confidentiality:
• Non-Confidential documents are available at 

developer.arm.com/documentation

. Each

document link in the following tables goes to the online version of the document.

• Confidential documents are available to licensees only through the product package.

Arm product resources

Document ID Confidentiality

Arm

®

 CoreSight

 ELA-500 Embedded Logic Analyzer Technical Reference Manual

100127

Non-Confidential

Arm

®

 Cortex

®

-A55 Core Advanced SIMD and Floating-point Support Technical Reference Manual

100446

Non-Confidential

Arm

®

 Cortex

®

-A55 Core Cryptographic Extension Technical Reference Manual

100444

Non-Confidential

Arm

®

 Cortex

®

-A55 Core Integration Manual

100445

Confidential

Arm

®

 DynamIQ

 Shared Unit Configuration and Sign-off Guide

100454

Confidential

Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

100453

Non-Confidential

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

21

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Introduction

Arm product resources

Document ID Confidentiality

Arm

®

 Cortex

®

-A55 Core Configuration and Sign-off Guide

100443

Confidential

Arm

®

 DynamIQ

 Shared Unit Integration Manual

100455

Confidential

Arm architecture and specifications

Document ID Confidentiality

AMBA

®

 5 CHI Architecture Specification

IHI 0050

Non-Confidential

AMBA

®

 APB Protocol Specification

IHI 0024

Non-Confidential

AMBA

®

 ATB Protocol Specification

IHI 0032

Non-Confidential

AMBA

®

 AXI and ACE Protocol Specification

IHI 0022

Non-Confidential

AMBA

®

 Low Power Interface Specification

IHI 0068

Non-Confidential

Arm

®

 Architecture Reference Manual for A-profile architecture

DDI 0487

Non-Confidential

Arm

®

 CoreSight

 Architecture Specification v3.0

IHI 0029

Non-Confidential

Arm

®

 Debug Interface Architecture Specification, ADIv5.0 to ADIv5.2

IHI 0031

Non-Confidential

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4

IHI 0064

Non-Confidential

Arm

®

 Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4

IHI 0069

Non-Confidential

Non-Arm resources

Document ID

Organization

ANSI/IEEE Std 54-2008, IEEE Standard for Binary Floating-Point Arithmetic

IEEE 754-2008

IEEE

www.ieee.org

Arm

®

 floating-point terminology is largely based on the earlier ANSI/IEEE Std

754-1985 issue of the standard. See the 

Arm

®

 Architecture Reference Manual for A-

profile architecture

 for more information.

Arm tests its PDFs only in Adobe Acrobat and Acrobat Reader. Arm cannot

guarantee the quality of its documents when used with any other PDF reader.

Adobe PDF reader products can be downloaded at 

http://www.adobe.com

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

22

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

2. Functional description

This part describes the main functionality of the Cortex

®

-A55 core.

2.1 Introduction to the Cortex

®

-A55 core

This chapter provides an overview of the Cortex

®

-A55 core and its features.

2.1.1 About the core

The Cortex

®

-A55 core is a mid-range, low-power core that implements the Arm

®

v8‑A architecture

with support for the Arm

®

v8.1-A extension, the Arm

®

v8.2-A extension, the RAS extension, the

Load acquire (LDAPR) instructions introduced in the Arm

®

v8.3-A extension, and the dot product

instructions introduced in the Arm

®

v8.4-A extension.

The core has a 

Level 1

 (L1) memory system, and private 

Level 2

 (L2) cache. The core is implemented

inside the DynamIQ

 Shared Unit (DSU) as a Little core and is highly configurable with other cores.

The following figure shows an example of a dual-core configuration.

Figure 2-1: Example dual-core configuration with homogeneous cores

DFT

Power management and 

clock control

External memory interface

CoreSight infrastructure

Interrupt interface

Cluster

Cortex-A55 

Core 1

DSU

Cortex-A55 

Core 0

The Cortex

®

-A55 core can also be part of a heterogeneous system. The following figure shows an

example in which the Cortex

®

-A55 core and another core are integrated into a shared 

Level 3

 (L3)

cluster.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

23

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

Figure 2-2: Example quad-core configuration with heterogeneous cores

DFT

Power management and 

clock control

External memory interface

CoreSight infrastructure

Interrupt interface

Cluster

Cortex-A55 

Core 1

DSU

Cortex-A55 

Core 0

Other

Core 0

Other

Core 1

For more information on the permissible combination of cores in the cluster, see appendix

Compatible Core Versions in the 

 Arm

®

 DynamIQ

 Shared Unit Configuration and Sign-off Guide

.

2.1.2 Features

The Cortex

®

-A55 core includes the following features:

Core Features
• Full implementation of the Arm

®

v8.2-A A64, A32, and T32 instruction sets.

• Both the AArch32 and AArch64 execution states at all Exception levels (EL0 to EL3).
• In-order pipeline with direct and indirect branch prediction.
• Separate L1 data and instruction side memory systems with a 

Memory Management Unit

(MMU).

• Support for Arm TrustZone

®

 technology.

• Optional Data Engine unit that implements the Advanced SIMD and floating-point architecture

support.

• Optional Cryptographic Extension. This architectural extension is only available if the Data

Engine is present.

Generic Interrupt Controller

 (GIC) CPU interface to connect to an external distributor.

• Generic Timers interface supporting 64-bit count input from an external system counter.

Cache features
• Optional unified private L2 cache.
• L1 and L2 cache protection in the form of 

Error Correction Code

 (ECC) or parity on RAM

instances which affect functionality.

Debug features

Reliability, Availability, and Serviceability

 (RAS) Extension.

• Arm

®

v8.2-A debug logic.

Performance Monitoring Unit

 (PMU).

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

24

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

Embedded Trace Macrocell

 (ETM) that supports instruction trace only.

2.1.3 Implementation options

The Cortex

®

-A55 core is highly configurable.

Build-time configuration options make it possible to meet functional requirements with the smallest

possible area and power. In a configuration with more than one core, all cores have the same build-

time configuration except for the L2 cache inclusion and size.

The following table lists the implementation options for a core.

Table 2-1: Implementation options for a core

Feature

Range of options

Notes

L1 instruction cache size

16KB

32KB

64KB

-

L1 data cache size

16KB

32KB

64KB

-

L2 cache

Included

Not included

-

L2 cache size

64KB

128KB

256KB

-

ECC or parity core cache protection

Included

Not included

Not available if the L3 cache is implemented without L3 cache

protection.

Advanced SIMD and floating-point support

(including Dot Product support instructions)

Included

Not included

There is no option to implement floating-point without Advanced

SIMD.

Cryptographic Extension

Included

Not included

There is no option to implement the Cryptographic Extension

without the Advanced SIMD and floating-point support.

CoreSight Embedded Logic Analyzer (ELA)

Optional support Support for integrating CoreSight ELA-500. The CoreSight

ELA-500 is a separately licensable product.

CoreSight ELA RAM address size

2-25

See the 

 

 Arm

®

 CoreSight

 ELA-500 Embedded Logic Analyzer

Technical Reference Manual

 for more details about the RAM sizing.

Page Based Hardware Attributes

 (PBHA) support •

Included

Not included

Support for PBHA. For more information, see 

2.5.7 Page Based

Hardware Attributes

 on page 53.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

25

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

2.1.4 Supported standards and specifications

The Cortex

®

-A55 core implements the Arm

®

v8‑A architecture and some architecture extensions. It

also supports various interconnect, interrupt, timer, debug, and trace architectures.

Table 2-2: Compliance with standards and specifications

Architecture specification or standard

Version

Notes

Arm architecture

Arm

®

v8‑A

AArch64 and AArch32 execution

states at all Exception levels.

A64, A32, and T32 instruction

sets.

Arm architecture extensions

Arm

®

v8.1-A extensions.

Arm

®

v8.2-A extensions.

Advanced SIMD and floating-point support.

Cryptographic Extension.

RAS Extension.

Arm

®

v8.3-A LDAPR instructions.

Arm

®

v8.4-A dot product instructions.

You cannot implement floating-

point without Advanced SIMD.

You cannot implement the

Cryptographic Extension without

the Advanced SIMD and floating-

point support.

The Cortex

®

-A55 core

implements the 

LDAPR

instructions introduced in the

v8.3 extensions.

The Cortex

®

-A55 core optionally

implements the 

SDOT

 and 

UDOT

instructions introduced in the

v8.4 extensions.

Generic Interrupt Controller

GICv4

-

PMU

PMUv3

-

Debug

Arm

®

v8‑A

With support for the debug features

added by the Arm

®

v8.2-A extensions.

CoreSight

CoreSightv3

-

Embedded Trace Macrocell

ETMv4.2

-

See 

1.4 Useful resources

 on page 21 for a list of architectural references.

2.1.5 Test features

The Cortex

®

-A55 core provides test signals that enable the use of both 

Automatic Test Pattern

Generation

 (ATPG) and 

Memory Built-In Self Test

 (MBIST) to test the core processing logic and

memory arrays.

For more information, see the 

 Arm

®

 Cortex

®

-A55 Core Integration Manual

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

26

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

2.1.6 Design tasks

The Cortex

®

-A55 core is delivered as a synthesizable 

Register Transfer Level

 (RTL) description in

Verilog HDL. Before you can use the Cortex

®

-A55 core, you must implement it, integrate it, and

program it.

A different party can perform each of the following tasks. Each task can include implementation

and integration choices that affect the behavior and features of the core.

Implementation

The implementer configures and synthesizes the RTL to produce a hard macrocell. This task

includes integrating RAMs into the design.

Integration

The integrator connects the macrocell into a SoC. This task includes connecting it to a

memory system and peripherals.

Programming

In the final task, the system programmer develops the software to configure and initialize the

core and tests the application software.

The operation of the final device depends on the following:

Build configuration

The implementer chooses the options that affect how the RTL source files are pre-processed.

These options usually include or exclude logic that affects one or more of the area, maximum

frequency, and features of the resulting macrocell.

Configuration inputs

The integrator configures some features of the core by tying inputs to specific values. These

configuration settings affect the start-up behavior before any software configuration is made.

They can also limit the options available to the software.

Software configuration

The programmer configures the core by programming particular values into registers. The

configuration choices affect the behavior of the core.

2.1.7 Product revisions

This section indicates the first release and, in subsequent releases, describes the differences in

functionality between product revisions.

r0p0

First release.

r0p1

Further development and optimization of the product.

r1p0

Addition of the dot product instructions that are introduced in the v8.4

architecture extensions.

r2p0

Addition of PBHA support and support for more L3 cache sizes.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

27

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

2.2 Technical overview

This chapter describes the structure of the Cortex

®

-A55 core.

2.2.1 Components

The cluster consists of:

• One to eight cores.
• The 

DynamIQ

 Shared Unit

 (DSU), which connects the cores to an external memory system.

For more information, see the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

The following figure includes a top-level functional diagram of a core.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

28

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

Figure 2-3: Core block diagram

DynamIQ™ Cluster

Click and type. Right-click to select fill color.

Core 7*

Click and type. Right-click to select fill color.

Core 6*

Click and type. Right-click to select fill color.

Core 5*

Click and type. Right-click to select fill color.

Core 4*

Click and type. Right-click to select fill color.

Core 3*

Click and type. Right-click to select fill color.

Core 2*

Click and type. Right-click to select fill color.

Core 1*

Core 0

L2 cache*

ETM

GIC CPU interface

DSU SCU and L3

DPU

IFU

L1 memory system

DSU Asynchronous Bridges

* Optional

ELA*

PMU

NEON*

DCU

L1

Instruction

Cache

STB

BIU

MMU

L1

Data

Cache

There are multiple asynchronous bridges between the Cortex

®

-A55 core and the

DSU. Only the coherent interface between the Cortex

®

-A55 core and the DSU can

be configured to run synchronously, however it does not affect the other interfaces

such as debug, trace, and GIC which are always asynchronous. For more information

on how to set the coherent interface to run either synchronously or asynchronously,

see 

Configuration Guidelines

 in the 

 Arm

®

 DynamIQ

 Shared Unit Configuration and

Sign-off Guide

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

29

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

Instruction Fetch Unit

 (IFU)

The IFU fetches instructions from the instruction cache or from external memory and predicts the

outcome of branches in the instruction stream. It passes the instructions to the 

Data Processing Unit

(DPU) for processing.

Data Processing Unit

 (DPU)

The DPU decodes and executes instructions. It executes instructions that require data transfer to

or from the memory system by interfacing to the 

Data Cache Unit

 (DCU). The DPU includes the

PMU, the Advanced SIMD and floating-point support, and the Cryptographic Extension.

PMU

The PMU provides six performance monitors that can be configured to gather statistics on

the operation of each core and the memory system. The information can be used for debug

and code profiling.

Advanced SIMD and floating-point support

Advanced SIMD is a media and signal processing architecture that adds instructions primarily

for audio, video, 3D graphics, image and speech processing. The floating-point architecture

provides support for single-precision and double-precision floating-point operations.

All scalar floating-point instructions are available in the A64 instruction set.

All VFP instructions are available in the A32 and T32 instruction sets.

The A64 instruction set offers additional Advanced SIMD instructions, including double-

precision floating-point vector operations.

The Advanced SIMD architecture, its associated implementations, and

supporting software, are also referred to as NEON

 technology.

Cryptographic Extension

The optional Cortex

®

-A55 core Cryptographic Extension supports the Arm

®

v8‑A

Cryptographic Extension. It is a configuration option that can be set when configuring and

integrating the core into a system and applies to all cores. The Cryptographic Extension adds

new instructions to Advanced SIMD that accelerate:

Advanced Encryption Standard

 (AES) encryption and decryption.

• The 

Secure Hash Algorithm

 (SHA) functions SHA-1, SHA-224, and SHA-256.

• Finite field arithmetic used in algorithms such as 

Galois/Counter Mode

 and 

Elliptic Curve

Cryptography

.

Memory Management Unit

 (MMU)

The MMU provides fine-grained memory system control through a set of virtual-to-physical

address mappings and memory attributes that are held in translation tables. These are saved into

the 

Translation Lookaside Buffer

 (TLB) when an address is translated. The TLB entries include global

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

30

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

and 

Address Space Identifiers

 (ASIDs) to prevent context switch TLB flushes. They also include

Virtual Machine Identifiers

 (VMIDs) to prevent TLB flushes on virtual machine switches by the

hypervisor.

L1 TLBs

The first level of caching for the translation table information is an L1 TLB. It is implemented

on both of the instruction and data sides. All TLB-related maintenance operations result in

flushing both the instruction and data L1 TLBs.

L2 TLB

A unified L2 TLB handles the misses from the L1 TLBs.

In implementations with core cache protection, parity bits protect the TLB RAMs by enabling

the detection of any single-bit error. If an error is detected, the entry is invalidated and

fetched again.

L1 memory system

The L1 memory system includes the 

Data Cache Unit

 (DCU), the 

Store Buffer

 (STB), and the 

Bus

Interface Unit

 (BIU).

DCU

The DCU manages all load and store operations.

The L1 data cache RAMs are protected using 

Error Correction Codes

 (ECC). The ECC scheme

is 

Single Error Correct Double Error Detect

 (SECDED). The DCU includes a combined local and

global exclusive monitor that is used by Load-Exclusive and Store-Exclusive instructions.

STB

The STB holds store operations when they have left the load/store pipeline in the DCU and

have been committed by the DPU. The STB can request access to the L1 data cache, initiate

linefills, or write to L2 and L3 memory systems.

The STB is also used to queue maintenance operations before they are broadcast to other

cores in the cluster.

BIU

The BIU contains the interface to the L2 memory system and buffers to decouple the

interface from the L1 data cache and STB.

L2 memory system

The L2 memory system contains the L2 cache. The L2 cache is optional and private to each core.

The L2 cache is 4-way set associative, supports 64-byte cache lines, and has a configurable cache

RAM size between 64KB and 256KB. The L2 memory system is connected to the DynamIQ

Shared Unit through an optional asynchronous bridge.

GIC CPU interface

The GIC CPU interface, when integrated with an external distributor component, is a resource for

supporting and managing interrupts in a cluster system.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

31

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

DynamIQ

 Shared Unit

The 

DynamIQ

 Shared Unit

 (DSU) contains the L3 cache and logic required to maintain coherence

between the cores in the cluster. For more information, see the 

 Arm

®

 DynamIQ

 Shared Unit

Technical Reference Manual

.

Debug and trace components

The Cortex

®

-A55 core supports a range of debug, test, and trace options including:

• Six performance event counters, provided by the PMU, and one cycle counter.
• Six hardware breakpoints, and four watchpoints.
• Per-core instruction trace only ETM.
• Per-core support for an ELA-500.

AMBA 4

 APB interfaces between the cluster and the DebugBlock.

Details of the core-specific debug elements can be found in this document. For information on the

cluster debug and trace components supported by the Cortex

®

-A55 core, see the 

 Arm

®

 DynamIQ

Shared Unit Technical Reference Manual

.

2.2.2 Interfaces

The Cortex

®

-A55 core has several interfaces to connect it to a SoC. The 

DynamIQ Shared Unit

(DSU) manages all interfaces.

For information on the interfaces, see the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

2.2.3 About system control

The System registers control and provide status information for the functions that the core

implements.

The main functions of the System registers are:
• Overall system control and configuration

Memory Management Unit

 (MMU) configuration and management

• Cache configuration and management
• System performance monitoring

Generic Interrupt Controller

 (GIC) configuration and management

The System registers are accessible in the AArch64 and AArch32 Execution states. Some of the

System registers are accessible through the external debug interface.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

32

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

2.2.4 About the Generic Timer

The Generic Timer can schedule events and trigger interrupts that are based on an incrementing

counter value. It generates timer events as active-LOW interrupt outputs and event streams.

The Cortex

®

-A55 core provides a set of timer registers. The timers are:

• An EL1 Non-secure physical timer
• An EL2 Hypervisor physical timer
• An EL3 Secure physical timer
• A virtual timer
• A Hypervisor virtual timer

The Cortex

®

-A55 core does not include the system counter. The system counter resides in the

SoC, and its value is distributed to the core over a 64-bit bus.

For more information on the Generic Timer, see the 

 Arm

®

 DynamIQ

 Shared Unit Technical

Reference Manual

 and the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

2.3 Clocks, resets, and input synchronization

This chapter describes the clocks, resets, and input synchronization of the Cortex

®

-A55 core.

2.3.1 About clocks, resets, and input synchronization

The Cortex

®

-A55 core supports hierarchical clock gating.

The Cortex

®

-A55 core contains several interfaces that connect to other components in the system.

These interfaces can be in the same clock domain or in other clock domains.

For information about clocks, resets, and input synchronization, see the 

Arm

®

 DynamIQ

 Shared

Unit Technical Reference Manual

.

2.3.2 Asynchronous interface

Your implementation can include an optional asynchronous interface between the core and the

DynamIQ Shared Unit

 (DSU) top level.

See the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

 for more information.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

33

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

2.4 Power management

This chapter describes the power domains and the power modes in the Cortex

®

-A55 core.

2.4.1 About power management

The Cortex

®

-A55 core provides mechanisms to control both dynamic and static power dissipation.

The dynamic power management includes the following features:
• Architectural clock gating.
• Per-core 

Dynamic Voltage and Frequency Scaling

 (DVFS).

The static power management includes the following features:
• Dynamic retention.
• Powerdown.

2.4.2 Voltage domains

The Cortex

®

-A55 core supports a VCPU voltage domain and a VSYS voltage domain.

The following figure shows the VCPU and VSYS voltage domains in each Cortex

®

-A55 core and in

the DSU. The example shows a configuration with four Cortex

®

-A55 cores.

Figure 2-4: Cortex

®

-A55 voltage domains

Core 0

DSU

Core 1

Core 2

Core 3

VCPU0
VCPU1

VSYS

VCPU3

VCPU2

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

34

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

Asynchronous bridge logic exists between the voltage domains. The Cortex

®

-A55 core processing

logic and core clock domain of the asynchronous bridge are in the VCPU voltage domain. The DSU

clock domain of the asynchronous bridge is in the VSYS voltage domain.

You can tie VCPU and VSYS to the same supply if the core is not required to

support 

Dynamic Voltage and Frequency Scaling

 (DVFS). If it is in its own power

domain with proper isolation, the core can still be powered down independently.

2.4.3 Power domains

The Cortex

®

-A55 core supports multiple power domains.

The following figure shows the power domains in the Cortex

®

-A55 core. The colored boxes

indicate the PDADVSIMD, PDCPU, and PDSYS power domains, with respective voltage domains

shown in dotted lines.

Figure 2-5: Cortex

®

-A55 core power domains

VCPU voltage domain 

Adv SIMD/FP

L1

L2

VSYS voltage domain 

PDADVSIMD
PDCPU
PDSYS

Core processing logic

Asynchronous bridge 

CPU domain

Asynchronous bridge 

SYS domain

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

35

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

In a DSU cluster, there might be multiple Cortex

®

-A55 cores. The following figure shows the

power domains for four Cortex

®

-A55 cores in a DSU cluster. Everything in the same color is part

of the same power domain. The number of power domains increases based on the number of

cores present. This example only shows the power domains that are associated with the Cortex

®

-

A55 cores. For information on the other power domains required for a DSU cluster, see the 

Power

management

 chapter of the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

Figure 2-6: Cortex

®

-A55 power domains

DSU Cluster

Core-3

L2

PDCPU[3] domain

L1

Core-2

L2

PDCPU[2] domain

L1

Core-1

L2

PDCPU[1] domain

L1

Core-0

L2

PDCPU[0] domain

L1

Adv-SIMD/FP

Adv-SIMD/FP

Adv-SIMD/FP

Adv-SIMD/FP

You do not need to use the full flexibility that the Cortex

®

-A55 clock, voltage, and

power domains provide.

The Advanced SIMD and floating-point block in each core is also part of the power domain for that

core. However, to support independent retention control, each Advanced SIMD and floating-point

block also has its own power domain for isolation from the surrounding domain.

The following table shows the power domains that the Cortex

®

-A55 core supports.

Table 2-3: Power domain description

Power domain

Description

PDCPU<n>

This domain contains all core processing logic and cpu clock domain logic of the asynchronous bridge. It also includes

the optional Advanced SIMD and floating-point block, the L1 and L2 TLBs, L1 and L2 core RAMs, and debug registers

that are associated with the core.

<n> where n is the core number in the range 0-7. The number represents core 0, core 1, core 2, to core 7. If a core is

not present, the corresponding power domain is not present.

PDADVSIMD<n> This is an optional power domain for Advanced SIMD and floating-point block to implement SIMD dynamic retention.

<n> is the core number in the range 0-7. The number represents core 0, core 1, core 2, to core 7. If a core is not

present, the corresponding power domain is not present.

PDSYS

This domain contains the cluster clock domain logic of the asynchronous bridge.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

36

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

Clamping cells between power domains are inferred rather than instantiated in the RTL.

2.4.4 Architectural clock gating modes

When the Cortex

®

-A55 core is in standby mode, it is architecturally clock gated at the top of the

clock tree.

Wait for Interrupt

 (WFI) and 

Wait for Event

 (WFE) are features of Arm

®

v8‑A architecture that put

the core in a low-power standby mode by architecturally disabling the clock at the top of the clock

tree. The core is fully powered and retains all the state in standby mode.

There is a small dynamic power overhead from the logic that is required to wake up the core from

WFI low-power state. Other than this, the power that is drawn is reduced to static leakage current

only.

2.4.4.1 Core Wait for Interrupt

WFI uses a locking mechanism, based on events, to put the core in a low-power state by disabling

most of the clocks in the core, while keeping the core powered up.

When the core executes the 

WFI

 instruction, the core waits for all instructions in the core, including

explicit memory accesses, to retire before it enters a low-power state. The 

WFI

 instruction also

ensures that store instructions have updated the cache or have been issued to the L3 memory

system.

While the core is in WFI low-power state, the clocks in the core are temporarily enabled without

causing the core to exit WFI low-power state when any of the following events are detected:
• An L3 snoop request that must be serviced by the core data caches.
• A cache or TLB maintenance operation that must be serviced by the core L1 instruction cache,

data cache, TLB, or L2 cache.

• An APB access to the debug or trace registers residing in the core power domain.
• A GIC CPU access through the AXI4 stream channel.

Exit from WFI low-power state occurs when one of the following occurs:
• The core detects one of the WFI wake-up events.
• The core detects a reset.

For more information, see the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

37

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

2.4.4.2 Core Wait for Event

Wait For Event

 (WFE) uses a locking mechanism, based on events, to put the core in a low-power

state by disabling most of the clocks in the core, while keeping the core powered up.

When the core executes the 

WFE

 instruction, the core waits for all instructions in the core, including

explicit memory accesses, to retire before it enters a low-power state. The 

WFE

 instruction also

ensures that store instructions have updated the cache or have been issued to the L3 memory

system.

If the event register is set, execution of WFE does not cause entry into standby state, but clears

the event register.

While the core is in WFE low-power state, the clocks in the core are temporarily enabled without

causing the core to exit WFE low-power state when any of the following events are detected:
• An L3 snoop request that must be serviced by the core data caches.
• A cache or TLB maintenance operation that must be serviced by the core L1 instruction cache,

data cache, TLB, or L2 cache.

• An APB access to the debug or trace registers residing in the core power domain.
• A GIC CPU access through the AXI4 stream channel.

Exit from WFE low-power state occurs when one of the following occurs:
• The core detects one of the WFE wake-up events.
• The EVENTI input signal is asserted.
• The core detects a reset.

For more information, see the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

2.4.5 Power control

All power mode transitions are performed at the request of the power controller, using a P-Channel

interface to communicate with the Cortex

®

-A55 core.

There is one P-Channel per core, plus one P-Channel for the cluster. The Cortex

®

-A55 core

provides the current requirements on the PACTIVE signals, so that the power controller can make

decisions and request any change with PREQ and PSTATE. The Cortex

®

-A55 core then performs

any actions necessary to reach the requested power mode, such as gating clocks, flushing caches,

or disabling coherency, before accepting the request.

If the request is not valid, either because of an incorrect transition or because the status has

changed so that state is no longer appropriate, then the request is denied. The power mode of

each core can be independent of other cores in the cluster, however the cluster power mode is

linked to the mode of the cores.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

38

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

2.4.6 Power modes

The following figure shows the supported modes for each core domain, and the legal transitions

between them.

Figure 2-7: Cortex

®

-A55 Core Power Domain Mode Transitions

From Any 

Mode

Off

Off

(Emulated)

Debug 

Recovery

On

Core

Dynamic

Retention 

SIMD

Dynamic

Retention

The darker (blue) blocks indicate the modes that the core can be initialized into. The dotted

line transition from On to Core Dynamic Retention is only allowed if SIMD retention is not

implemented or has been disabled.

The power domains can be controlled independently to give different combinations when

powered-up and powered-down.

However, only some powered-up and powered-down domain combinations are valid and

supported. The following table describes the power modes, and the corresponding supported

power domain states for individual cores.

States that are not shown in the following tables are unsupported and must not

occur.

Table 2-4: Supported core power mode and power domain states

Power domain

Power mode

PDCPU PDADVSIMD

Description

Debug recovery On

On

Core on. Advanced SIMD and floating-point block on. Block is active.

On

On

On

Core on. Advanced SIMD and floating-point block on. Block is active.

SIMD dynamic

retention

On

Ret

Core on. Advanced SIMD and floating-point block in retention. Block is active.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

39

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

Power domain

Power mode

PDCPU PDADVSIMD

Description

Core dynamic

retention

Ret

Ret

Core retention. Core processing logic and Advanced SIMD and floating-point block in

retention. Logic and RAM retention power only.

Off (emulated)

On

On

Core on. Advanced SIMD and floating-point block on. Block is active.

Off

Off

Off

Core off. Power to the block is gated.

Deviating from the legal power modes can lead to 

UNPREDICTABLE

 results. You must comply with

the dynamic power management and powerup and powerdown sequences described in the

following sections.

2.4.6.1 On mode

In this mode, the core is on and fully operational.

The core can be initialized into the On mode. If the core does not use P-Channel, you can tie the

core in the On mode by tying PREQ LOW.

When a transition to the On mode completes, all caches are accessible and coherent. Other than

the normal architectural steps to enable caches, no additional software configuration is required.

When the core domain P-Channel is initialized into the On mode, either as a shortcut for entering

that mode or as a tie-off for an unused P-Channel, it is an assumed transition from the Off mode.

This includes an invalidation of any cache RAM within the core domain.

2.4.6.2 Off mode

The Cortex

®

-A55 core supports a full Shutdown mode where power can be removed completely

and no state is retained.

The shutdown can be for either the whole cluster or just for an individual core, which allows other

cores in the cluster to continue operating.

In this mode, all core processing logic and RAMs are off. The domain is inoperable and all core

state is lost. The L1 and L2 caches are disabled, flushed and the core is removed from coherency

automatically on transition to Off mode.

A Cold reset can reset the core in this mode.

The core P-Channel can be initialized into this mode.

An attempted debug access when the core domain is off returns an error response on the internal

debug interface indicating the core is not available.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

40

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

2.4.6.3 Emulated off mode

In this mode, all Core domain logic and RAMs are kept on. However, core Warm reset can be

asserted externally to emulate a powerdown scenario while keeping core debug state and allowing

debug access.

All Debug registers must retain their mode and be accessible from the external debug interface. All

other functional interfaces behave as if the core was in Off mode.

2.4.6.4 SIMD dynamic retention mode

In this mode, the Advanced SIMD and floating-point logic is in retention (inoperable but with state

retained) and the remainder of the core processing logic is operational.

This means that if an Advanced SIMD and floating-point instruction is executed while in this mode,

it is stalled until the core enters the On mode.

When the Advanced SIMD and floating-point logic is in retention, the clock to the logic is

automatically gated outside of the retained domain.

The SIMD dynamic retention mode is controlled by the CPUPWRCTLR.SIMD_RET_CTRL bit.

2.4.6.5 Core dynamic retention mode

In this mode, all core processing logic and RAMs are in retention and the core domain is inoperable.

The core can be entered into this power mode when it is in 

Wait For Interrupt

 (WFI) or 

Wait For

Event

 (WFE) mode.

The Core dynamic retention mode can be enabled and disabled separately for WFI and WFE by

software running on the core. Separate timeout values can be programmed for entry into this mode

from WFI and WFE mode:
• Use the CPUPWRCTLR.WFI_RET_CTRL register bits to program timeout values for entry into

Core dynamic retention mode from WFI mode.

• Use the CPUPWRCTLR.WFE_RET_CTRL register bits to program timeout values for entry into

Core dynamic retention mode from WFE mode.

The clock to the core is automatically gated outside of the domain when the core is in Core

dynamic retention mode and is running synchronously to the cluster. However, if the core is

running asynchronously to the cluster, the system integrator must gate the clock externally

during Core dynamic retention mode. For more information, see the 

 Arm

®

 DynamIQ

 Shared Unit

Configuration and Sign-off Guide

.

The outputs of the domain must be isolated to prevent buffers without power from propagating

UNKNOWN

 values to any operational parts of the system.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

41

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

When the core is in Core dynamic retention mode there is support for snoop, GIC, and debug

access, so the core appears as if it were in WFI or WFE mode. When an incoming access occurs,

it stalls, and the On PACTIVE bit is set HIGH. The incoming access proceeds when the domain is

returned to the On mode using P-Channel.

When the incoming access completes, and if the core has not exited WFI or WFE mode, then the

On PACTIVE bit is set LOW after the programmed retention timeout. The power controller can

then request to reenter the Core dynamic retention mode.

If SIMD dynamic retention is implemented and enabled, then the core does not

indicate on PACTIVE that it can enter Core dynamic retention mode until it is

already in SIMD dynamic retention.

2.4.6.6 Debug recovery mode

Debug recovery mode can be used to assist debug of external watchdog-triggered reset events.

It allows contents of the core L1 instruction, L1 data and L2 caches that were present before the

reset to be observable after the reset. The contents of the caches are retained and are not altered

on the transition back to the On mode.

By default, the core invalidates its caches when transitioning from Off to On mode. If P-Channel is

initialized to Debug recovery mode, and the core is cycled through Cold or Warm reset along with

system resets, then the cache invalidation is disabled. The cache contents are preserved when the

core is transitioned to the On mode.

Debug recovery mode also supports preserving 

Reliability, Availability, and Serviceability

 (RAS) state,

in addition to the cache contents. In this case, a transition to Debug recovery mode is made from

any of the current states. Once in Debug recovery mode, a cluster-wide Warm reset must be

applied externally. The RAS and cache state are preserved when the core is transitioned to the On

mode.

Debug recovery mode is strictly for debug purposes. It must not be used for

functional purposes, as correct operation of the caches is not guaranteed when

entering this mode.
• This mode can occur at any time with no guarantee of the state of the core. A

P-Channel request of this type is accepted immediately, therefore its effects

on the core, cluster, or the wider system are unpredictable, and a wider system

reset might be required. In particular, if there were outstanding memory system

transactions at the time of the reset, then these might complete after the reset

when the core is not expecting them and cause a system deadlock.

• If the system sends a snoop to the cluster during this mode, then depending on

the cluster state, the snoop might get a response and disturb the contents of

the caches, or it might not get a response and cause a system deadlock.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

42

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

2.4.7 Encoding for power modes

The following table shows the encodings for the supported modes for each core domain P-

Channel.

Table 2-5: Core Power Modes COREPSTATE Encoding

Power Mode

Short Name

PACTIVE Bit

Number

PSTATE
value

1

Power Mode Description

Debug Recovery

DEBUG_RECOV -

0b001010

Logic is off (or in reset), RAM state is retained and not invalidated

when transition to On mode.

On

ON

8

0b001000

All powerup.

SIMD Dynamic

Retention

FUNC_RET

7

0b000111

SIMD logic is in retention and inoperable. All other logic is on and

operational.

Core Dynamic

Retention

FULL_RET

5

0b000101

Logic and RAM State are inoperable but retained.

Off (Emulated)

OFF_EMU

1

0b000001

On with Warm reset asserted, debug state is retained and accessible.

Off

OFF

0 (implicit)

2

0b000000

All powerdown.

2.4.8 Power down sequence

The Cortex

®

-A55 core uses the following power down sequence.

To power down a core, perform the following programming sequence:
1. Save all architectural state.
2. Configure the GIC distributor to disable or reroute interrupts away from this core.
3. Set the CPUPWRCTLR.CORE_PWRDN_EN bit to 1 to indicate to the power controller that a

powerdown is requested.

4. Execute an 

Instruction Synchronization Barrier

 (ISB) instruction.

5. Execute a WFI instruction.

After executing WFI and then receiving a powerdown request from the power controller, the

hardware performs the following:
• Disabling and flushing of caches (L1 and L2).
• Removal of the core from coherency.

1

PSTATE[5:4] are don't care.

2

It is tied off to 0 and should be inferred when all other PACTIVE bits are LOW. For more information, see the 

AMBA

®

 Low Power Interface Specification

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

43

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

When the CPUPWRCTLR.CORE_PWRDN_EN bit is set, executing a WFI instruction

automatically masks all interrupts and wake-up events in the core. As a result,

applying reset is the only way to wake up the core from this WFI.

2.4.9 Debug over powerdown

The Cortex

®

-A55 core supports debug over powerdown, which allows a debugger to retain its

connection with the core even when powered down. This enables debug to continue through

powerdown scenarios, rather than having to re-establish a connection each time the core is

powered up.

The debug over powerdown logic is part of the DebugBlock, which is external to the cluster and

can be implemented in a separate power domain. If the DebugBlock is in the same power domain

as the core, then debug over powerdown is not supported.

For more information on the DebugBlock, see the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference

Manual

.

2.5 Memory Management Unit

This chapter describes the 

Memory Management Unit

 (MMU) of the Cortex

®

-A55 core.

2.5.1 About the MMU

The 

Memory Management Unit

 (MMU) is responsible for translating addresses of code and data

Virtual Addresses

 (VAs) to 

Physical Addresses

 (PAs) in the real system. The MMU also controls

memory access permissions, memory ordering, and cache policies for each region of memory.

2.5.1.1 Main functions

The three main functions of the MMU are to:

• Control the translation table walk hardware that accesses translation tables in main memory.
• Translate 

Virtual Addresses

 (VAs) to 

Physical Addresses

 (PAs).

• Provide fine-grained memory system control through a set of virtual-to-physical address

mappings and memory attributes that are held in translation tables.

Each stage of address translation uses a set of address translations and associated memory

properties that are held in memory mapped tables called translation tables. Translation table entries

can be cached into a 

Translation Lookaside Buffer

 (TLB).

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

44

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

The following table describes the components included in the MMU.

Table 2-6: TLBs and TLB caches in the MMU

Component

Description

Instruction L1 TLB

15 entries, fully associative

Data L1 TLB

16 entries, fully associative

L2 TLB

1024 entries, 4-way set associative

Walk cache RAM

64 entries, 4-way set associative

IPA cache RAM

64 entries, 4-way set associative

L2 TLB entries contain global and 

Address Space Identifiers

 (ASID) to prevent context switch TLB

flushes.

The TLB entries contain a 

Virtual Machine Identifier

 (VMID) to prevent context switch TLB flushes

on virtual machine switches by the hypervisor.

The Cortex

®

-A55 core supports a 40-bit physical address range, which allows 1TB of physical

memory to be addressed.

2.5.1.2 AArch32 and AArch64 behavior differences

The Cortex

®

-A55 core is an Arm

®

v8‑A compliant core that supports execution in both AArch32

and AArch64 states.

The following table shows the behavior differences between both execution states.

Table 2-7: AArch32 and AArch64 behavior differences

AArch32

AArch64

Address

translation

system

The Arm

®

v8‑A address translation system resembles the

Arm

®

v7 address translation system with 

Large Physical

Address Extension

 (LPAE) and Virtualization Extensions.

The Arm

®

v8‑A address translation system resembles an

extension to the Long descriptor format address translation

system to support the expanded virtual and physical address

space.

Translation

granule

4KB for both 

Virtual Memory System Architecture

 (VMSA)

and LPAE.

4KB, 16KB, or 64KB for LPAE.

ASID size 8 bits.

8 or 16 bits, depending on the value of TCR_ELx.AS

VMID size 8 bits.

8 or 16 bits, depending on the value of VTCR_EL2.VS

PA size

40 bits only.

Maximum 40 bits.

Any configuration of TCR_ELx.IPS over 40 bits is considered

as 40 bits. You can enable or disable each stage of the address

translation independently.

The Cortex

®

-A55 core also supports the 

Virtualization Host Extension

 (VHE) including ASID space

for EL2. When VHE is implemented and enabled, EL2 has the same behavior as EL1.

See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for more information on

concatenated translation tables and for address translation formats.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

45

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

2.5.2 TLB organization

The 

Translation Lookaside Buffer

 (TLB) is a cache of recently executed page translations within the

MMU. The Cortex

®

-A55 core implements a two-level TLB structure. The L2 TLB stores all page

sizes and is responsible for breaking these down into smaller pages when required for the data-side

or instruction-side L1 TLB.

TLB lockdown is not supported.

After reset, an Invalidate All operation is executed and all entries in the TLB are invalidated.

2.5.2.1 L1 TLB

The first level of caching for the translation table information is an L1 TLB, implemented on each of

the instruction and data sides.

The Cortex

®

-A55 L1 instruction TLB supports 4KB, 16KB, 64KB, and 2MB pages.

The Cortex

®

-A55 L1 data TLB supports 4KB pages only.

Any other page sizes are fractured after the L2 TLB and the appropriate page size sent to the L1

TLB.

All TLB maintenance operations affect both the L1 instruction and data TLBs and cause them to be

invalidated.

2.5.2.2 L2 TLB

A unified L2 TLB handles any misses from the L1 instruction and data TLBs.

• A 4-way, set-associative, 1024-entry cache.
• Supports all 

Virtual Memory System Architecture

 (VMSA) block sizes, except for 1GB, as

described in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

. See VMSAv8 in

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for more information.

If a 1GB block is fetched, it is split into 512MB blocks and the appropriate block for the lookup is

stored.

Accesses to the L2 TLB take a variable number of cycles, based on:
• Competing requests from the L1 TLBs.
• TLB maintenance operations in flight.
• Different page size mappings in use.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

46

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

2.5.2.3 IPA cache RAM

The 

Intermediate Physical Address

 (IPA) cache RAM holds mappings between the IPAs and 

Physical

Addresses

 (PAs).

Only Non-secure EL1 and EL0 stage 2 translations use the IPA cache. When a stage 2 translation

completes, the cache is updated. The IPA cache is checked whenever a stage 2 translation is

required.

Like the L2 TLB, the IPA cache RAM can hold entries for different sizes.

2.5.2.4 Walk cache RAM

The walk cache RAM holds the result of a stage 1 translation up to, but not including, the last level.

2.5.3 TLB match process

The Arm

®

v8‑A architecture provides support for multiple maps from the VA space that are

translated differently.

TLB entries store the context information that is required to facilitate a match and avoid the need

for a TLB flush on a context or virtual machine switch.

Each TLB entry contains a:
• VA.
• PA.
• Set of memory properties that include type and access permissions.

Each entry is either associated with a particular 

Address Space Identifier

 (ASID) or is global. In

addition, each TLB entry contains a field to store the 

Virtual Machine Identifier

 (VMID) in the entry

applicable to accesses from Non-secure EL0 and EL1 Exception levels.

Each entry is associated with a particular translation regime.
• EL3 in Secure state in AArch64 only.
• EL2 (or EL0 in VHE mode) in Non-secure state.
• EL1 or EL0 in Secure state or EL3 in Secure state in AArch32.
• EL1 or EL0 in Non-secure state.

A TLB match entry occurs when the following conditions are met:
• When VA[48:N] matches the requested address, where N is log

2

 of the block size for that

translation that is stored in the TLB entry, moderated by the page size.

• When the memory space matches the memory space state of the requests. The memory space

can be one of the four states mentioned above.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

47

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

• The ASID matches the current ASID held in the CONTEXTIDR, TTBR0, or TTBR1 register, or

the entry is marked global.

• The ASID matches are 

IGNORED

 for requests originating from EL2 when not in VHE mode or

from EL3 in AArch64.

• The VMID matches the current VMID held in the VTTBR_EL2 register.
• The VMID match is 

IGNORED

 for a request not originating from Non-secure EL0 or EL1.

2.5.4 Translation table walks

When the Cortex

®

-A55 core generates a memory access, the MMU:

1. Performs a lookup for the requested VA and current translation regime in the relevant

instruction or data L1 TLB.

2. If there is a miss in the relevant L1 TLB, the MMU performs a lookup for the requested VA,

current ASID, current VMID, and translation regime in the L2 TLB.

3. If there is a miss in the L2 TLB, the MMU performs a hardware translation table walk.

In the case of an L2 TLB miss, the hardware does a translation table walk as long as the MMU is

enabled, and the translation using the base register has not been disabled.

If the translation table walk is disabled for a particular base register, the core returns a Translation

Fault. If the TLB finds a matching entry, it uses the information in the entry as follows.

The access permission bits and the domain determine if the access is permitted. If the matching

entry does not pass the permission checks, the MMU signals a Permission fault. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

 for details of Permission faults, including:

• A description of the various faults.
• The fault codes.
• Information regarding the registers where the fault codes are set.

In AArch32 VMSA Short-descriptor format, the permission check includes the

domain properties.

2.5.4.1 AArch64 behavior

When executing in AArch64 state at a particular Exception level, you can configure the hardware

translation table walk to use either the 4KB, 16KB, or 64KB translation granule.

Program the Translation Granule bit, TG0, in the appropriate translation control register:
• TCR_EL1

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

48

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

• TCR_EL2
• TCR_EL3
• VTCR_EL2

For TCR_EL1, you can program the Translation Granule bits TG0 and TG1 to configure the

translation granule respectively for TTBR0_EL1 and TTBR1_EL1, or TCR_EL2 when 

Virtualization

Host Extension

 (VHE) is enabled.

2.5.4.2 AArch32 behavior

When executing in AArch32 state in a particular mode, you can configure the MMU to perform

hardware translation table walks using either the Short-descriptor translation table format, or the

Long-descriptor translation table format. This is controlled by programming the 

Extended Address

Enable

 (EAE) bit in the appropriate Secure or Non-secure 

Translation Table Base Control Register

(TTBCR).

Translations in Hyp mode are always performed with the Long-descriptor translation

table format.

2.5.5 MMU memory accesses

During a translation table walk, the 

Memory Management Unit

 (MMU) generates memory accesses.

The Cortex

®

-A55 core has specific behaviors for MMU memory accesses.

2.5.5.1 Configuring MMU accesses

Translation table walk can be performed in cacheable or non-cacheable regions. This is determined

by the translation table walk memory attribute, which can be affected by several different

configurations:

• IRGN and ORGN bits in the TCR_ELx and VTCR_EL2 registers (or TTBR0/TTBR1_ELx register

for short-descriptor translation table format), which define the memory type for translation

table walk.

• SCTRL_ELx.C and HCR_EL2.CD or HCR.CD, which affect the table walk to cacheable or non-

cacheable memory.

• Stage 2 memory attribute for stage 1 translation table walk, which affect the stage 1 translation

table walk memory attribute.

For more information on the control fields, see the 

Arm

®

 Architecture Reference Manual for A-profile

architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

49

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

Only when the final translation table walk memory attribute is inner write-back and outer write-

back and the cache is enabled, the translation table walk accesses the cacheable memory.

2.5.5.2 Hardware management of the Access flag and dirty state

The Cortex

®

-A55 core includes the option to perform hardware updates to the translation tables in

AArch64 state only.

These features are enabled in registers TCR_ELx and VTCR_EL2. To support the hardware

management of dirty state, the DBM field is added to the translation table descriptors as part of

Arm

®

v8.1-A architecture.

The core supports hardware updates to the Access flag and to dirty state only when the translation

tables are held in Inner Write-Back, Outer Write-Back Normal memory regions.

If software requests a hardware update in a region that is not Inner Write-Back or Outer Write-

Back Normal memory, then the core returns an abort with the following encoding:
• ESR.ELx.DFSC = 

0b110001

 for Data Aborts in AArch64.

• ESR.ELx.IFSC = 

0b110001

 for Instruction Aborts in AArch64.

For the Cortex

®

-A55 core, the following situations can cause hardware updates to the Access flag

or to dirty state:
• For a Store-Exclusive instruction to a memory location for which the DBM bit is 1 and the stage

1 AP[2] bit is 1, if the Store-Exclusive fails because the exclusive monitor is not in the exclusive

state, the AP[2] bit in the translation table is updated.

• For a Store-Exclusive instruction to a memory location for which the DBM bit is 1, and the

stage 2 S2AP[1] bit is 0, if the Store-Exclusive fails because the exclusive monitor is not in the

exclusive state, the S2AP[1] bit in the translation table is updated.

• For a store to a memory location for which the DBM bit is 1, and the stage 1 AP[2] bit is 1, the

AP[2] bit in the translation table is updated:
◦ If the memory location generates a synchronous external abort on a write for a store to a

memory location.

◦ If the memory location generates a watchpoint on a write.

• For a store to a memory location for which the DBM bit is 1, and the stage 2 S2AP[1] bit is 0,

the S2AP[1] bit in the translation table is updated:
◦ If the memory location generates a synchronous external abort on a write for a store to a

memory location.

◦ If the memory location generates a watchpoint on a write.

• For a CAS or CASP instruction to a memory location for which the DBM bit is 1, and the

stage 1 AP[2] bit is 1, if the compare fails, and the location is not updated, the AP[2] bit in the

translation table is updated.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

50

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

• For a CAS or CASP instruction to a memory location for which the DBM bit is 1, and the stage

2 S2AP[1] bit is 0, if the compare fails, and the location is not updated, the S2AP[1] bit in the

translation table is updated.

For more information about hardware updates of the Access flag and dirty state, see the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

2.5.6 Responses

Certain faults and aborts can cause an exception to be taken because of a memory access.

2.5.6.1 MMU responses

When one of the following translations is completed, the MMU generates a response to the

requester:

• An L1 TLB hit.
• An L2 TLB hit.
• A translation table walk.

The response from the MMU contains the following information:
• The PA corresponding to the translation.
• A set of permissions.
• Domains information for AArch32 short descriptor format only.
• Secure or Non-secure.
• All the information required to report aborts. See the 

Arm

®

 Architecture Reference Manual for A-

profile architecture

 for more details.

2.5.6.2 MMU aborts

The MMU can detect faults that are related to address translation and can cause exceptions to

be taken to the processing element. Faults can include address size, translation, access flags, and

permissions.

See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for more information about

aborts.

2.5.6.3 External aborts

External aborts are aborts that occur in the memory system rather than aborts that the MMU

detects. Normally, external memory aborts are rare. External aborts are caused by errors flagged

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

51

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

by the external memory interfaces or are generated because of an uncorrected ECC error in the L1

data cache or L2 cache arrays.

When an external abort to the external interface occurs on an access for a translation table walk

access, the MMU returns a synchronous external abort. For a Load Multiple or a Store Multiple

operation, the address captured in the fault register is that of the address that generated the

synchronous external abort.

2.5.6.4 Mis-programming contiguous hints

A programmer might mis-program the translation tables so that:

• The block size being used to translate the address is larger than the size of the input address.
• The address range translated by a set of blocks marked as contiguous, by use of the contiguous

bit, is larger than the size of the input address.

If there is this kind of mis-programming, the Cortex

®

-A55 core does not generate a translation

fault.

2.5.6.5 Conflict aborts

The Cortex

®

-A55 core does not generate Conflict aborts.

See also the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for more information.

2.5.6.6 Memory Behavior

The Cortex

®

-A55 core supports all the Arm

®

v8‑A memory types.

However, the following behaviors are simplified and so for best performance their use is not

recommended:

Write-

Through

Memory that is marked as Write-Through cannot be cached on the data-side

and does not make coherency requests. On the instruction-side, areas that are

marked as Write-Through and Write-Back can be cached in the L1 instruction

cache. However, only areas marked as Write-Back can be cached in the L2

cache or the L3 cache.

Mixed inner

and outer

cacheability

Memory that is not marked as inner and outer Write-Back cannot be cached

on the data-side and does not make coherency requests. This applies to the

memory type only, and not to the allocation hints. All caches within the cluster

are treated as being part of the inner cacheability domain.

For more information on supported memory behaviors, see the 

Arm

®

 Architecture Reference Manual

for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

52

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

2.5.6.7 Support for Arm

®

v8‑A device memory types

The Arm

®

v8‑A architecture includes memory types that replace the Arm

®

v7 Device and Strongly-

ordered memory types. These device memory types have the following three attributes:

G – Gathering

The capability to gather and merge requests together into a single transaction.

R – Reordering

The capability to reorder transactions.

E – Early Write Acknowledgement

The capability to accept early acknowledge of transactions from the interconnect.

The legal combinations are described in the following table:

Table 2-8: Arm

®

v8‑A Device Memory Types

Memory type Cortex

®

-A55

support

Comment

GRE

Yes

Similar to Normal non-cacheable, but does not permit speculative accesses.

nGRE

Yes

Transactions might be reordered within the L3 memory system, or in the system interconnect.

nGnRE

Yes

Corresponds to Device in Arm

®

v7.

nGnRnE

Yes

Corresponds to Strongly Ordered in Arm

®

v7.

Treated the same as nGnRE inside the Cortex

®

-A55 core, but reported differently on the bus interface.

For more information, see the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

2.5.7 Page Based Hardware Attributes

PBHA is an optional, 

IMPLEMENTATION DEFINED

 feature.

It allows software to set up to two bits in the translation tables, which are then propagated

though the memory system with transactions, and can be used in the system to control system

components. The meaning of the bits is specific to the system design.

For information on how to set and enable the PBHA bits in the translation tables, see the 

Arm

®

Architecture Reference Manual for A-profile architecture

. When disabled, the PBHA value that is

propagated on the bus is 0.

For memory accesses caused by a translation table walk, the AHTCR, ATTBCR, and AVTCR

registers control the PBHA values.

PBHA combination between stage 1 and stage 2 on memory accesses

PBHA should always be considered as an attribute of the physical address.

When stage 1 and stage 2 are enabled:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

53

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

• If both stage 1 PBHA and stage 2 PBHA are enabled, the final PBHA is stage 2 PBHA.
• If stage 1 PBHA is enabled and stage 2 PBHA is disabled, the final PBHA is stage 1 PBHA.
• If stage 1 PBHA is disabled and stage 2 PBHA is enabled, the final PBHA is stage 2 PBHA.
• If both stage 1 PBHA and stage 2 PBHA are disabled, the final PBHA is defined to 0.

Enable of PBHA has granularity of one bit, so this property is applied independently on each PBHA

bit.

Mismatched aliases

If the same physical address is accessed through more than one virtual address mapping, and the

PBHA bits are different in the mappings, then the results are 

UNPREDICTABLE

. The PBHA value sent

on the bus could be for either mapping.

2.6 L1 memory system

This chapter describes the L1 instruction cache and data cache that make up the L1 memory

system.

2.6.1 About the L1 memory system

The L1 memory system enhances the performance and power efficiency in the Cortex

®

-A55 core.

It consists of separate instruction and data caches. You can configure instruction and data caches

independently during implementation to sizes of 16KB, 32KB, or 64KB.

L1 instruction-side memory system

The L1 instruction-side memory system provides an instruction stream to the DPU. Its key features

are:
• 64-byte instruction side cache line length.
• 4-way set associative L1 instruction cache.
• 128-bit read interface to the L2 memory system.

The Cortex

®

-A55 core uses extensive branch prediction to improve 

Instructions Per Clock

 (IPC) and

power efficiency.

L1 data-side memory system

The L1 data-side memory system responds to load and store requests from the DPU. It also

responds to SCU snoop requests from other cores, or external requesters. Its key features are:
• 64-byte data side cache line length.
• 4-way set associative L1 data cache.
• Read buffer that services both the 

Data Cache Unit

 (DCU), and the 

Instruction Fetch Unit

 (IFU).

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

54

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

• 64-bit read path from the data L1 memory system to the datapath.
• 128-bit write path from the datapath to the L1 memory system.
• Merging store buffer capability which writes to all types of memory (device, normal cacheable

and normal non-cacheable).

• Data side prefetch engine that detects patterns of strides with multiple streams are allowed in

parallel, capable of detecting both constant and patterns of strides.

2.6.2 Cache behavior

On a cache miss, the cache performs a critical word-first fill.

This word-first fill is an 

IMPLEMENTATION SPECIFIC

 feature of the instruction and data caches.

2.6.2.1 Instruction cache disabled behavior

If the instruction cache is disabled, all instruction fetches to cacheable memory are treated as if

they were non-cacheable.

This means that instruction fetches might not be coherent with caches in other cores, and software

must take account of this.
• In AArch64 state, lines may still be allocated into the instruction cache even if the memory is

marked non-cacheable or the instruction cache is disabled. See the 

Arm

®

 Architecture Reference

Manual for A-profile architecture

 for more information.

• In AArch32 state, lines are not allocated into instruction cache when the instruction cache

is disabled. Allocation into the instruction cache only occurs when the instruction cache is

enabled, and memory is marked as Write-Back or Write-Through cacheable.

2.6.2.2 Instruction cache speculative memory accesses

Instruction fetches are speculative. Execution is not guaranteed, because there can be several

unresolved branches in the pipeline.

A branch instruction or exception in the code stream can cause a pipeline flush, discarding the

currently fetched instructions. On instruction fetch accesses, pages with Device memory type

attributes are treated as Non-Cacheable Normal Memory.

Device memory pages must be marked with the translation table descriptor attribute bit 

Execute

Never

 (XN). The device and code address spaces must be separated in the physical memory map.

This separation prevents speculative fetches to read-sensitive devices when address translation is

disabled.

If the instruction cache is enabled, and if the instruction fetches miss in the L1 instruction cache,

they can still look up in the L1 data caches. However, a new line is not allocated in the data cache

unless the data cache is enabled.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

55

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for more information.

2.6.2.3 Data cache disabled behavior

If the SCTLR.C bit is set to 0, load and store instructions do not access any of the L1 data, L2, or

DSU L3 caches.

The SCTLR.C bit controls whether accesses from the core can look up and allocate into the

data cache and unified L2 or L3 caches. Data cache maintenance operations execute normally,

regardless of how the SCTLR.C bit is set.

If the SCTLR.C bit is set to 0, then the following apply:
• Instruction fetches cannot allocate in the L2 or L3 caches.
• All load and store instructions to cacheable memory are treated as if they were non-cacheable.

Therefore, they are not coherent with the caches in this core or the caches in other cores, and

software must take this into account.

The L2 and L1 data caches cannot be disabled independently.

2.6.2.4 Data cache maintenance considerations

DCIMVAC operations in AArch32 and DC IVAC instructions in AArch64 perform an invalidate of

the target address.

If the data is dirty within the cluster, a clean is performed before the invalidate.

DCISW and DCCSW operations in AArch32 and DC ISW and DC CSW instructions in AArch64

perform both a clean and invalidate of the target set/way. The values of HCR.SWIO and

HCR_EL2.SWIO have no effect.

2.6.2.5 Data cache coherency

The Cortex

®

-A55 core uses the MESI protocol to maintain data coherency between multiple cores.

MESI describes the state that a shareable line in a L1 data cache can be in:

M

Modified/

UniqueDirty

 (UD). The line is in only this cache and is dirty.

E

Exclusive/

UniqueClean

 (UC). The line is in only this cache and is clean.

S

Shared/

SharedClean

 (SC). The line is possibly in more than one cache and is

clean.

I

Invalid/

Invalid

 (I). The line is not in this cache.

The DCU stores the MESI state of the cache line in the tag and dirty RAMs.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

56

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

The names UniqueDirty, SharedDirty, UniqueClean, SharedClean, and Invalid are

the AMBA names for the cache states. The Cortex

®

-A55 core does not use the

SharedDirty AMBA state.

2.6.2.6 Write Streaming Mode

A cache line is allocated to the L1 on either a read miss or a write miss.

However, there are some situations where allocating on writes is not required. For example, when

executing the C standard library 

memset()

 function to clear a large block of memory to a known

value. Writes of large blocks of data can pollute the cache with unnecessary data. It can also waste

power and performance if a linefill must be performed only to discard the linefill data because the

entire line was subsequently written by the 

memset()

.

To counter this, the BIU includes logic to detect when the core has written a full cache line before

the linefill completes. If this situation is detected on a configurable number of consecutive linefills,

then it switches into write streaming mode. This is sometimes referred to as read allocate mode.

When in write streaming mode, loads will behave as normal, and can still cause linefills, and writes

will still lookup in the cache, but if they miss then they will write out to L2 (or possibly L3) rather

than starting a linefill.

More than the specified number of linefills might be observed on the ACE manager

interface or the CHI requester interface, before the BIU detects that three full

cache lines have been written and switches to write streaming mode.

The BIU continues in write streaming mode until it detects either a cacheable write burst that is not

a full cache line, or there is a load from the same line as is currently being written to L2.

When a core has dropped into write streaming mode, the BIU continues to monitor the bus traffic

and will signal to the L2 for it to go into write streaming mode when a further number of full cache

line writes are seen.

AArch64 state

• CPUECTLR_EL1.L1WSCTL configures the L1 write streaming mode threshold.
• CPUECTLR_EL1.L2WSCTL configures the L2 write streaming mode threshold.
• CPUECTLR_EL1.L3WSCTL configures the L3 write streaming mode threshold.

For more information, see 

3.2.30 CPUECTLR_EL1, CPU Extended Control Register, EL1

 on

page 268.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

57

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

AArch32 state

CPUECTLR.L1WSCTL configures the L1 write streaming mode threshold,

CPUECTLR.L2WSCTL configures the L2 write streaming mode threshold, and

CPUECTLR.L3WSCTL configures the L3 write streaming mode threshold.

2.6.2.7 Data cache invalidate on reset

The Arm

®

v8‑A architecture does not support an operation to invalidate the entire data cache.

The Cortex

®

-A55 core automatically invalidates caches on reset unless suppressed with the debug

recovery P-Channel state. It is therefore not necessary for software to invalidate the caches on

startup.

2.6.3 L1 instruction memory system

The L1 instruction side memory system provides an instruction stream to the 

Data Processing Unit

(DPU).

To increase overall performance and to reduce power consumption, it uses:
• Dynamic branch prediction.
• Instruction caching.

2.6.3.1 Program flow prediction

The Cortex

®

-A55 core contains program flow prediction hardware, also known as branch

prediction.

Branch prediction increases overall performance and reduces power consumption. With program

flow prediction disabled, all taken branches incur a penalty that is associated with flushing the

pipeline.

To avoid this penalty, the branch prediction hardware predicts if a conditional or unconditional

branch is to be taken. For conditional branches, the hardware predicts if the branch is to be taken.

It also predicts the address that the branch goes to, known as the branch target address. For

unconditional branches, only the target is predicted.

The hardware contains the following functionality:
• A BTAC holding the branch target address of previously taken branches.
• Dynamic branch predictor history.
• The return stack, a stack of nested subroutine return addresses.
• A static branch predictor.
• An indirect branch predictor.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

58

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

Predicted and non-predicted instructions

Unless otherwise specified, the following list applies to A64, A32, and T32 instructions.  As a rule

the flow prediction hardware predicts all branch instructions regardless of the addressing mode,

and includes:
• Conditional branches.
• Unconditional branches.
• Indirect branches that are associated with procedure call and return instructions.
• Branches that switch between A32 and T32 states.

The following branch instructions are not predicted:
• Data-processing instructions using the PC as a destination register.
• The 

BXJ

 instruction.

• Exception return instructions.

T32 state conditional branches

A T32 unconditional branch instruction can be made conditional by inclusion in an 

If-Then

 (IT)

block. It is then treated as a conditional branch.

Return stack

The return stack stores the address and instruction set state.

This address is equal to the link register value stored in R14 in AArch32 state or X30 in AArch64

state.

The following instructions cause a return stack push if predicted:

BL r14

BLX (immediate)

 in AArch32 state

BLX (register)

 in AArch32 state

BLR

 in AArch64 state

MOV pc,r14

In AArch32 state, the following instructions cause a return stack pop if predicted:

BX

LDR pc, [r13], #imm

LDM r13, {…pc}

LDM r13, {…pc}

In AArch64 state, the 

RET

 instruction causes a return stack pop.

As exception return instructions can change core privilege mode and Security state, they are not

predicted. These include:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

59

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

LDM (exception return)

RFE

SUBS pc, lr

ERET

2.6.4 L1 data memory system

The L1 data cache is organized as a 

Virtually Indexed Physically Tagged

 (VIPT) cache, with alias

avoidance logic so that it appears to software as if it were physically indexed.

The Arm

®

v8‑A architecture does not support an operation to invalidate the entire data cache. If

software requires this function, it must be constructed by iterating over the cache geometry and

executing a series of individual invalidate by set/way instructions.

2.6.4.1 Memory system implementation

This section describes the implementation of the L1 memory system.

Limited Order Regions

The Cortex

®

-A55 core supports a single limited order range that includes the entire memory space.

Atomic instructions

The Cortex

®

-A55 core supports the atomic instructions added in the Arm

®

v8.1-A architecture.

Atomic instructions to cacheable memory can be performed as either near atomics or far atomics,

depending on where the cache line containing the data resides. If the instruction hits in the L1 data

cache in a unique state then it will be performed as a near atomic in the L1 memory system. If the

atomic operation misses in the L1 cache, or the line is shared with another core then the atomic

is sent as a far atomic out to the L3 cache. If the operation misses everywhere within the cluster,

and the requester interface is configured as CHI, and the interconnect supports far atomics, then

the atomic will be passed on to the interconnect to perform the operation. If the operation hits

anywhere inside the cluster, or the interconnect does not support atomics, then the L3 memory

system will perform the atomic operation and allocate the line into the L3 cache if it is not already

there.

The Cortex

®

-A55 core supports atomics to device or non-cacheable memory, however this relies

on the interconnect also supporting atomics. If such an atomic instruction is executed when the

interconnect does not support them, it will result in a synchronous Data Abort (for load atomics)

or an asynchronous Data Abort (for store atomics). The behavior of the atomic instructions can be

modified by the CPUECTLR register settings.

For more information on the CPUECTLR register, see 

3.2.30 CPUECTLR_EL1, CPU Extended

Control Register, EL1

 on page 268.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

60

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

LDAPR instructions

The core supports Load acquire instructions adhering to the RCpc consistency semantic introduced

in the Arm

®

v8.3-A extensions. This is reflected in register ID_AA64ISAR1_EL1 where bits[23:20]

are set to 

0b0001

 to indicate that the core supports 

LDAPRB

LDAPRH

, and 

LDAPR

 instructions

implemented in AArch64.

For more information on the ID_AA64ISAR1_EL1 register, see 

3.2.58 ID_AA64ISAR0_EL1,

AArch64 Instruction Set Attribute Register 0, EL1

 on page 303.

Transient memory region

The core has a specific behavior for memory regions that are marked as Write-Back cacheable and

transient, as defined in the Arm

®

v8‑A architecture.

For any load that is targeted at a memory region that is marked as transient, the following occurs:
• If the memory access misses in the L1 data cache, the returned cache line is allocated in the L1

data cache but is marked as transient.

• On eviction, if the line is clean and marked as transient, it is not allocated into the L2 cache but

is marked as invalid.

For stores that are targeted at a memory region that is marked as transient, if the store misses in

the L1 data cache, the line is allocated into the L2 cache.

Non-temporal loads

Non-temporal loads indicate to the caches that the data is likely to be used for only short periods.

For example, when streaming single-use read data that is then discarded. In addition to non-

temporal loads, there are also prefetch-memory (

PRFM

) hint instructions with the 

STRM

 qualifier.

Non-temporal loads cause allocation into the L1 data cache, with the same performance as

normal loads. However, when a later linefill is allocated into the cache, the cacheline marked as

non-temporal has higher priority to be be replaced. To prevent pollution of the L2 cache, a non-

temporal line that is evicted from L1, is not allocated to L2 as would happen for a normal line.

The line is only marked as non-temporal in the cache if the core has the line in a

unique state. If shared with other cores, the line is treated normally.

Non-temporal stores are treated the same as stores to a memory region that is marked as transient.

2.6.4.2 Internal exclusive monitor

The Cortex

®

-A55 core L1 memory system has an internal exclusive monitor.

This monitor is a 2-state, open and exclusive, state machine that manages Load-Exclusive or Store-

Exclusive accesses and Clear-Exclusive (

CLREX

) instructions. You can use these instructions to

construct semaphores, ensuring synchronization between different processes running on the

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

61

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

core, and also between different cores that are using the same coherent memory locations for the

semaphore. A Load-Exclusive instruction tags a small block of memory for exclusive access, and

a following Store-Exclusive will only successfully complete if that location has not been modified

since the Load-Exclusive. If the Store-exclusive fails it will result in EXFAIL and will not update

memory. CTR.ERG defines the size of the tagged block as 16 words, one cache line.

A load/store exclusive instruction is any one of the following:
• In the A64 instruction set, any instruction that has a mnemonic starting with

LDX

LDAX

STX

, or 

STLX

.

• In the A32 and T32 instruction sets, any instruction that has a mnemonic

starting with 

LDREX

STREX

LDAEX

, or 

STLEX

.

If a Load-Exclusive instruction is performed to non-cacheable or device memory, and is to a region

of memory in the SoC that does not support exclusive accesses, it causes a Data Abort exception

with a Data Fault Status Code of either:

0b110101

, when using the long descriptor format.

0b10101

, when using the short descriptor format.

See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for more information about

these instructions.

2.6.4.2.1

Treatment of intervening STR operations

Where there is an intervening store operation between an exclusive load and an exclusive store

from the same core, the intermediate store does not produce any direct effect on the internal

exclusive monitor.

After the exclusive load, the local monitor is in the Exclusive Access state. It remains in the

Exclusive Access state after the store, and then returns to the Open Access state only after an

exclusive store, a 

CLREX

 instruction, or an exception return.

However, if the exclusive code sequence accessed address is in cacheable memory, any eviction

of the cache line containing that address clears the monitor. Arm recommends that no load or

store instructions are placed between the exclusive load and the exclusive store, because these

additional instructions can cause a cache eviction. Any data cache maintenance instruction can also

clear the exclusive monitor.

2.6.4.3 Exclusive monitor

In the exclusive state machine, the 

IMPLEMENTATION DEFINED

 transitions are as follows:

• If the monitor is in the exclusive state, and a store exclusive is performed to a different address,

then the store exclusive fails and does not update memory.

• If a normal store is performed to a different address, it does not affect the exclusive monitor.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

62

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

• If a normal store is performed from a different core to the same address it clears the exclusive

monitor. If the store is from the same core then it does not clear the monitor.

2.6.5 Data prefetching

The following section describes the software and hardware data prefetching behavior of the

Cortex

®

-A55 core.

Hardware data prefetcher

The Cortex

®

-A55 core has a data prefetch mechanism that looks for cache line fetches with

regular patterns. If the data prefetcher detects a pattern, then it signals to the memory system that

memory accesses from a specified address are likely to occur soon. The memory system responds

by starting new linefills to fetch the predicted addresses ahead of the demand loads.

The Cortex

®

-A55 core can track multiple streams in parallel.

Prefetch streams end when either:
• The pattern is broken.
• A 

DSB

 is executed.

• A WFI or WFE is executed.
• A data cache maintenance operation is executed.

For read streams, the prefetcher is based on the virtual addresses. A given stream is allowed to

prefetch addresses through multiple pages as long as they are cacheable and with read permissions.

If the new page is still cacheable and has read permission, it can cross page boundaries. Write

streams are based on physical addresses and so cannot cross page boundaries. However, if full

cache line writes are performed then the prefetcher does not activate and write streaming mode is

used instead.

For some types of pattern, when the prefetcher is confident in the stream, it can start progressively

increasing the prefetch distance ahead of the current accesses. These accesses start to allocate

to the L3 cache rather than L1. Allocating to the L3 cache allows better utilization of the larger

resources available at L3. Also, utilizing the L3 cache reduces the amount of pollution of the L1

cache if the stream ends or is incorrectly predicted. If the prefetching to L3 was accurate, the line

will be removed from L3 and allocated to L1 when the stream reaches that address.

The CPUECTLR register allows you to:
• Deactivate the prefetcher.
• Alter the number of outstanding requests that the prefetcher can make.

Preload instructions

The Cortex

®

-A55 core supports 

PLD

 and 

PRFM

 instructions. If 

PLD

 and 

PRFM

 miss and are to a

cacheable address, then these instructions perform a lookup in the cache and start a linefill. The

PRFM

s also enables targeting of a prefetch to the L2 or L3 cache. A request is sent to L2 to start a

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

63

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

linefill, and then the instruction can retire without any data being returned to L1. 

PLI,PLIL1KEEP

,

and 

PLIL1STRM

 are implemented as a prefetch to L2.

Use the 

PLD

 or 

PRFM

 instruction for data prefetching where short sequences or irregular pattern

fetches are required. For more information about prefetch memory and preloading caches, see the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

Data Cache Zero

The Data Cache Zero by Virtual Address (

DC ZVA

) instruction enables a block of 64-bytes in

memory, which is aligned to 64-bytes in size, to be set to 0. The DCZID_EL0 register passes this

value.

The 

DC ZVA

 instruction allocates this value into the data cache using the same method as a normal

store instruction.

2.6.6 Direct access to internal memory

The Cortex

®

-A55 core provides a mechanism to read the internal memory that is used by the L1

cache and TLB structures through 

IMPLEMENTATION DEFINED

 system registers. This functionality can

be useful when investigating issues where the coherency between the data in the cache and data

in system memory is broken.

When the core executes in AArch64 state, the appropriate memory block and location are selected

using several write-only registers. The data is read from read-only registers as shown in the

following table. These operations are available only in EL3. In all other modes, executing these

instructions results in an Undefined Instruction exception.

Table 2-9: AArch64 registers used to access internal memory

Register name

Function

Access

Operation

Rd Data

CDBGDR0_EL3 Data Register 0

Read-only

MRS <Xd>, S3_6_c15_c0_0

Data

CDBGDR1_EL3 Data Register 1

Read-only

MRS <Xd>, S3_6_c15_c0_1

Data

CDBGDR2_EL3 Data Register 2

Read-only

MRS <Xd>, S3_6_c15_c0_2

Data

CDBGDCT_EL3 Data Cache Tag Read Operation Register

Write-only

sys #6, c15, c2, #0, <Xd>

Set/Way

CDBGICT_EL3

Instruction Cache Tag Read Operation Register

Write-only

sys #6, c15, c2, #1, <Xd>

Set/Way

CDBGTT_EL3

TLB Tag Read Operation Register

Write-only

sys #6, c15, c2, #2, <Xd>

Index/Way

CDBGDCD_EL3 Data Cache Data Read Operation Register

Write-only

sys #6, c15, c4, #0, <Xd>

Set/Way/Offset

CDBGICD_EL3

Instruction Cache Data Read Operation Register

Write-only

sys #6, c15, c4, #1, <Xd>

Set/Way/Offset

CDBGTD_EL3

TLB Data Read Operation Register

Write-only

sys #6, c15, c4, #2, <Xd>

Index/Way

When the core executes in AArch32 state, the appropriate memory block and location are selected

using several write-only system registers. The data is read from read-only system registers as

shown in the following table. These operations are available only in EL3. In all other modes,

executing the system operation results in an Undefined Instruction exception.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

64

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

Table 2-10: AArch32 CP15 registers used to access internal memory

Register name Function

Access

CP15 operation

Rd Data

CDBGDR0

Data Register 0

Read-only

MRC p15, 6, <Rd>, c15, c0, 0

Data

CDBGDR1

Data Register 1

Read-only

MRC p15, 6, <Rd>, c15, c0, 1

Data

CDBGDR2

Data Register 2

Read-only

MRC p15, 6, <Rd>, c15, c0, 2

Data

CDBGDCT

Data Cache Tag Read Operation Register

Write-only

MCR p15, 6, <Rd>, c15, c2, 0

Set/Way

CDBGICT

Instruction Cache Tag Read Operation Register

Write-only

MCR p15, 6, <Rd>, c15, c2, 1

Set/Way

CDBGTT

TLB Tag Read Operation Register

Write-only

MCR p15, 6, <Rd>, c15, c2, 2

Index/Way

CDBGDCD

Data Cache Data Read Operation Register

Write-only

MCR p15, 6, <Rd>, c15, c4, 0

Set/Way/Offset

CDBGICD

Instruction Cache Data Read Operation Register Write-only

MCR p15, 6, <Rd>, c15, c4, 1

Set/Way/Offset

CDBGTD

TLB Data Read Operation Register

Write-only

MCR p15, 6, <Rd>, c15, c4, 2

Index/Way

2.6.6.1 Encoding for tag and data in the L1 data cache

The Cortex

®

-A55 L1 data cache is a 4-way set associative structure.

The size of the configured cache determines the number of sets in each way. The following table

shows the encoding (set in 

Rd

 in the appropriate 

MCR

 instruction) used to locate the cache data

entry for tag and data memory. It is similar for both the tag and data RAM access.

Data RAM access includes an extra field to locate the appropriate word in the cache line. The set-

index range parameter (S) is:

S=12

For a 16KB cache.

S=13

For a 32KB cache.

S=14

For a 64KB cache.

Table 2-11: Cortex

®

-A55 L1 Data Cache Tag and Data location encoding

Bitfield of Rd

Description

[31:30]

Cache Way

[29:S]

Unused

[S-1:6]

Set index

[5:3]

Cache data element offset

[2:0]

Unused (Zero)

Tag information (MESI state, outer attributes, and valid) for the selected cache line, returns using

Data Register 0 and Data Register 1.

Use the format that is shown in the following table.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

65

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

Table 2-12: Cortex

®

-A55 L1 Data Cache Tag data format

Bitfield of Data

Register 0 and 1

Description

DR1[31:30]

MESI State (from tag RAM):

0b00

Invalid

0b01

Shared

0b10

Unique non-transient

0b11

Unique transient

DR1[29]

Non-secure state (NS) (from tag RAM)

DR1[28:1]

Tag Address [39:12] (from tag RAM)

DR1[0]

Unused (Zero)

DR0[31:7]

Unused (Zero)

DR0[6:5]

PBHA bits (from Dirty RAM)

DR0[4]

Dirty bit (from Dirty RAM)

DR0[3]

Shareability (from Dirty RAM)

DR0[2:1]

Age (from Dirty RAM)

DR0[0]

Outer Allocation Hint (from Dirty RAM)

The 64 bits of cache data returns in Data register 0 and Data register 1.

2.6.6.2 Encoding for tag and data in the L1 instruction cache

The L1 instruction cache is different from the L1 data cache. This is shown in the encodings and

data format used in the cache debug operations that are used to access the tag and data memories.

The following table shows the encoding that is required to select a given cache line.

The set-index range parameter (S) is:

S=12

For a 16KB cache.

S=13

For a 32KB cache.

S=14

For a 64KB cache.

Table 2-13: Cortex

®

-A55 Instruction Cache Tag and Data location encoding

Bitfield of Rd

Description

[31:30]

Cache Way

[29:S]

Unused

[S-1:6]

Set index

[5:2]

Cache data element offset (Data Register

only)

[1:0]

Unused

The following table shows the tag, instruction, and valid data for the selected cache line using only

Data Register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

66

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

Table 2-14: Cortex

®

-A55 Instruction Cache Tag data format

Bitfield of Data

Register 0

Description

[31]

Unused
Valid and set mode:

0b00

A32

0b01

T32

0b10

A64

[30:29]

0b11

Invalid

[28]

Non-secure state (NS)

-

[27:0]

Tag address

-

The cache data RAMs store instructions in a pre-decoded format. Each A32 or A64 or 32-bit T32

instruction is expanded to 40-bits and each 16-bit T32 instruction occupies 20 bits of the cache.

The L1 Instruction Cache Data Read Operation returns two 20-bit entries from the cache in Data

Register 0 and Data Register 1. Each corresponds to the 16-bit aligned offset in the cache line:

Data Register

0[19:0]

Pre-decode data from cache offset.

Data Register

1[19:0]

Pre-decode data from cache offset +2.

In A32 or A64 state, these two combined fields always represent a single pre-decoded instruction.

In T32 state, they can represent any combination of 16-bit and partial or full 32-bit instructions.

2.6.6.3 Encoding for the L2 TLB

The Cortex

®

-A55 core L2 TLB is built from a 4-way set associative RAM-based structure and

contains the data for the main TLB RAM, the Walk cache and IPA cache.

To read the individual entries into the data registers, software must write to the TLB Tag Read

Operation Register and to the TLB Data Read Operation Register.

Table 2-15: Cortex

®

-A55 TLB Data Read Operation Register location encoding

Bitfield of Rd

Description

[31:30]

TLB Way

[29:9]

Unused

[8:0]

TLB index

The TLB index is used to select the index from the TLB, walk cache, or IPA cache.

Table 2-16: TLB index

Bitfield of Rd

Description

0x000-0FF

Main TLB

0x100-10F

Walk cache

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

67

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

Bitfield of Rd

Description

0x110-11F

IPA cache

The TLB uses an encoding for the descriptor that is returned using the following Data Registers:

Data Register

0[31:0]

TLB Descriptor[31:0]

Data Register

1[31:0]

TLB Descriptor[63:32]

Data Register

2[31:0]

TLB Descriptor[88:64]

2.6.6.4 Main TLB RAM descriptor fields

The Main TLB RAM is divided into two parts, where one part for storing the tag and the other for

storing the data. The following tables list the descriptor fields.

Table 2-17: TLB descriptor fields for Tag RAM

Field

Bits

Width Description

Valid

[0]

1

Indicates that the entry is valid.

NS (walk)

[1]

1

The security state of core. Used to compare with the NS state for TLB lookup entry match.

ASID

[17:2] 16

Indicates the 

Address Space Identifier

 (ASID). This field will be 0 if ASID is not used.

VMID

[33:18] 16

Indicates the virtual machine identifier. This field will be 0 if VMID is not used.

Size

[36:34] 3

Indicates the combined page size of stage 1 and stage 2.

VMSAv8-32 Short-descriptor translation table format:

0b000

4KB

0b010

64KB

0b100

1MB

0b110

16MB

VMSAv8-32 Long-descriptor translation table format or VMSAv8-64 translation table when no 16KB page

granule is used:

0b001

4KB

0b011

64KB

0b101

2MB

0b111

512MB

VMSAv8-64 translation table when 16KB page granule is used.

The Domain[1] bit (bit[44]) is used together to encode the size information (Domain[1]:Size[2:0]):

0b0001

4KB

0b0011

64KB

0b0101

2MB

0b0111

512MB

0b1001

16KB

0b1011

32MB

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

68

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

Field

Bits

Width Description

nG

[37]

1

Indicates the non-global bit.

AP/HYP

[40:38] 3

AArch32: Access permissions from stage 1 translation or select hypervisor mode flag.

AArch64: Access permissions from stage 1 translation or select the EL2/EL3 flag.

S2AP

[42:41] 2

Indicates the stage 2 permission for EL1/EL0. For EL2/EL3, S2AP[1] is for the stage 1 access permission

and S2AP[0] is for identify EL2 or EL3.

Domain

[46:43] 4

Indicates the Domain [3:0] information for VMSA and other control information for LPAE.

S1 Size

[49:47] 3

Indicates the page or block size of the stage 1 translation result.

Address

Sign bit

[50]

1

Indicates the VA sign bit, VA[48].

VA

[78:51] 28

Indicates the virtual address.

DBM

[79]

1

Indicates the 

Dirty Bit Modifier

 (DBM) bit.

Parity

[81:80] 2

Indicates the parity bits. If parity is not configured, their bits are absent.

Table 2-18: TLB descriptor fields for Data RAM when PBHA is FALSE

Field

Bits

Width

Description

XS1Usr

[0]

1

AArch32: Executable and Readable in stage 1 user mode.

AArch64: Executable in stage 1 user mode

XS1Non-Usr

[1]

1

AArch32 and AArch 64: Executable in stage 1 non-user mode.

XS2Usr

[2]

1

AArch32 and AArch 64: Executable in stage 2 user mode.

XS2Non-Usr

[3]

1

AArch32 and AArch 64: Executable in stage 2 non-user mode.

Memory type and shareability

[11:4]

8

Defines the memory attribute.

S2 Level

[13:12]

2

The stage 2 level that gave this translation.

NS (descriptor)

[14]

1

The security state allocated to this memory region.

PA

[42:15]

28

The physical address.

Parity

[43]

1

Parity inclusion is dependant on configuration.

Table 2-19: TLB descriptor fields for Data RAM when PBHA is TRUE

Field

Bits

Width

Description

XS1Usr

[0]

1

AArch32: Executable and Readable in stage 1 user mode.

AArch64: Executable in stage 1 user mode

XS1Non-Usr

[1]

1

AArch32 and AArch 64: Executable in stage 1 non-user mode.

XS2Usr

[2]

1

AArch32 and AArch 64: Executable in stage 2 user mode.

XS2Non-Usr

[3]

1

AArch32 and AArch 64: Executable in stage 2 non-user mode.

Memory type and shareability

[11:4]

8

Defines the memory attribute.

PBHA bits

[13:12]

2

PBHA bits.

S2 Level

[15:14]

2

The stage 2 level that gave this translation.

NS (descriptor)

[16]

1

The security state allocated to this memory region.

PA

[44:17]

28

The physical address.

Parity

[45]

1

Parity inclusion is dependant on configuration.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

69

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

2.6.6.5 Walk cache descriptor fields

The following table shows the walk cache descriptor data fields for Tag and Data RAMs.

Table 2-20: Walk cache descriptor fields for Tag RAM

Field

Bit

Position

Width Description

Valid

[0]

1

Indicates that the entry is valid

NS (walk)

[1]

1

The Security state of the entry fetch

ASID

[17:2]

16

Address Space Identifier

VMID

[33:18]

16

Virtual Machine Identifier

HYP/EL2

[34]

1

Set if the entry was fetched in HYP, EL2, or 

Virtual Host Extension

 (VHE) mode.

EL3

[35]

1

Set if the entry was fetched in AArch64 EL3 mode

Arch

[38:36]

3

Used to determine how many and which bits of address are used for constructing the physical address

of the pagewalk

Domain

[42:39]

4

Valid only if the entry was fetched in VMSAv7 format

Address Sign

Bit

[45]

1

Address sign bit, VA[48]

VA

[69:46]

24

Virtual Address sign bit

S2AP

[71:70]

2

Stage 2 access permission

S2level

[73:72]

2

The stage 2 level which translates the IPA to PA for the page table entry

Parity

[81:80]

2

Parity Bits

Table 2-21: Walk cache descriptor fields for Data RAM

Field

Bit Position Width Description

APTable

[1:0]

2

Combined ATable bits from stage 1 descriptors up to the last level

XNTable

[2]

1

Combined XNTAble bits from stage 1 descriptors up to the last level

PXNTable [3]

1

Combined PXNTable bits from stage 1 descriptors up to the last level

NSTable

[4]

1

Combined NSTable bits from first and second-level stage 1 tables or NS descriptors (VMSA)

Attrs

[12:5]

8

Physical address attributes of the final level stage 1 table

PA

[42:13]

30

Physical address of the stage 1 last translation level page table entry

Parity

[43]

1

Parity inclusion is core configuration dependent. If parity is not configured, these bits are absent.

2.6.6.6 IPA cache descriptor fields

The IPA cache holds mappings from intermediate physical addresses (IPA) to physical addresses.

It is only used for translations performed in non-secure EL0/1. It is updated whenever a stage 2

translation is completed, and checked whenever a stage 2 translation is required.

The following table shows the data and tag fields in the IPA cache descriptor.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

70

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

Table 2-22: IPA cache descriptor fields for Tag RAM

Fields

Bits

Width

Descriptor

Valid

[0]

1

Indicates that the entry is valid.

Entry granule

[2:1]

2

Indicates the entry granule size.

Unused

[4:3]

2

Must be set to 0.

Size

[8:5]

4

Indicates the S2 page size for this entry.

DBM

[9]

1

Indicates the DBM.

Unused

[17:10]

8

Must be set to 0.

VMID

[33:18]

16

Indicates the virtual machine identifier.

IPA

[57:34]

24

Unused lower bits, page size dependant, must be set to zero.

Unused

[79:59]

22

Must be set to 0.

Parity

[81:80]

2

If parity is not configured, this bit is absent.

Table 2-23: IPA cache descriptor fields for Data RAM

Fields

Bits

Width

Descriptor

SH

[1:0]

2

Shareability.

S2AP

[3:2]

2

Stage 2 access permissions

XN

[5:4]

2

Controls EL1 and EL0 access permissions.

Memattrs

[9:6]

4

Stage 2 memory attributes.

PA

[37:10]

28

Physical Address.

Unused

[42:38]

5

Must be set to 0.

Parity

[43]

1

If parity is not configured, this bit is absent.

2.7 L2 memory system

This chapter describes the L2 memory system.

2.7.1 About the L2 memory system

The Cortex

®

-A55 L2 memory system is required to interface the Cortex

®

-A55 cores to the L3

memory system.

The L2 cache controller handles requests from the L1 instruction and data caches, and snoop

requests from the L3 memory system. The L2 memory system forwards responses from the L3

system to the core, which can then take precise or imprecise aborts, depending on the type of

transaction.

The L2 memory subsystem consists of:
• An optional 4-way, set-associative L2 cache with a configurable size of 64KB, 128KB, or

256KB. Cache lines have a fixed length of 64 bytes.

• Optional ECC protection for tag, data, and L2 data buffer RAM structures.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

71

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

The main features of the L2 memory system are:
• Strictly exclusive with L1 data cache.
• Pseudo-inclusive with L1 instruction cache.
• Private per-core unified L2 cache.
• 40-bit physical address space.
• Physically indexed, physically tagged.

2.7.2 Optional integrated L2 cache

Data is allocated to the L2 cache only when evicted from the L1 memory system, not when first

fetched from the system.

The exceptions to this rule are:
• If the Read-Allocate hint is set, cacheable reads from the TLB or instruction side are allocated in

the L2 cache.

• If the Write-Allocate hint is set when the L1 enters write-streaming mode, cacheable writes are

allocated in the L2 until the L2 streaming threshold is reached.

• L2 prefetches issued by the L1 through a 

PLD

 or 

PRFM

 instruction are allocated in the L2

regardless of the read-allocate hint.

When non-temporal data is evicted from the L1 memory system, the data is sent directly to L3 and

is not allocated in L2.

L2 RAMs are invalidated automatically at reset unless the debug recovery P-Channel state is used.

2.7.3 Support for memory types

The Cortex

®

-A55 core simplifies the coherency logic by downgrading some memory types.

• Memory that is marked as both Inner Write-Back Cacheable and Outer Write-Back Cacheable

is cached in the L1 data cache and the L2 cache.

• All other memory types are Non-cacheable.

The additional attribute hints are used as follows:

Allocation hint

Determines the rules of allocation of newly fetched lines in the system, see 

2.7.2 Optional

integrated L2 cache

 on page 72.

Transient hint

Allocating reads to the L1 data cache that have the transient bit set are allocated in the L1

cache and marked as most likely to be evicted according to the L1 eviction policy.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

72

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

Writes that have the transient bit set are not allocated to the L1 cache but are allocated to

the L2 cache instead.

Evictions from L1 cache marked as transient are not allocated in L2 cache.

The standard CHI attributes are passed to DSU with no modifications (except for translating

architectural attributes to CHI attributes):
• Allocate hint.
• Cacheability (inner and outer are merged together, as the Cortex

®

-A55 core only allocates both

inner and outer cacheable memory).

• Shareability.

2.8 Reliability, Availability, and Serviceability (RAS)

This chapter describes the RAS features implemented in the Cortex

®

-A55 core.

2.8.1 Cache ECC and parity

The Cortex

®

-A55 core implements the 

Reliability, Availability, and Serviceability

 (RAS) extension to

the Arm

®

v8‑A architecture which provides mechanisms for standardized reporting of the errors

that are generated by cache protection mechanisms.

When configured with core cache protection, the Cortex

®

-A55 core can detect and correct a 1-bit

error in any RAM and detect 2-bit errors in some RAMs.

For information about SCU-L3 cache protection, see the 

 Arm

®

 DynamIQ

 Shared

Unit Technical Reference Manual

.

The RAS extension improves the system by reducing unplanned outages:
• Transient errors can be detected and corrected before they cause application or system failure.
• Failing components can be identified and replaced.
• Failure can be predicted ahead of time to allow replacement during planned maintenance.

Errors that are present but not detected are known as latent or undetected errors. A transaction

carrying a latent error is corrupted. In a system with no error detection, all errors are latent errors

and are silently propagated by components until either:
• They are masked and do not affect the outcome of the system. These are benign or false errors.
• They affect the service interface of the system and cause failure. These are silent data

corruptions.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

73

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

The severity of a failure can range from minor to catastrophic. In many systems, data or service loss

is regarded as more of a minor failure than data corruption, as long as backup data is available.

The RAS extension focuses on errors that are produced from hardware faults, which fall into two

main categories:
• Transient faults.
• Persistent faults.

The RAS extension describes data corruption faults, which mostly occur in memories and on data

links. RAS concepts can also be used for the management of other types of physical faults that are

found in systems, such as lock-step errors, thermal trip, and mechanical failure. The RAS extension

provides a common programmers model and mechanisms for fault handling and error recovery.

2.8.2 Cache protection behavior

The core protects against soft errors that result in a RAM bitcell temporarily holding the incorrect

value.

The Cortex

®

-A55 core writes a new value to the RAM to correct the error. If the error is a hard

error that is not corrected by writing to the RAM, for example a physical defect in the RAM, then

the core might get into a livelock as it continually detects and then tries to correct the error.

Some RAMs have 

Single Error Detect

 (SED) capability, while others have 

Single Error Correct, Double

Error Detect

 (SECDED) capability. The core can make progress and remain functionally correct

when there is transient single bit error in any RAM. If there are multiple single bit errors in different

RAMs, or within different protection granules within the same RAM, then the core also remains

functionally correct. If there is a double bit error in a single RAM within the same protection

granule, then the behavior depends on the RAM:
• For RAMs with SECDED capability listed in the following table, the error is detected and

reported as described in error reporting. If the error is in a cache line containing dirty data, then

that data might be lost, resulting in data corruption

• For RAMs with only SED, a double bit error is not detected and therefore might cause data

corruption.

If there are three or more bit errors, then depending on the RAM and the position of the errors

within the RAM, the errors might be detected or might not be detected.

The Cortex

®

-A55 cache protection support has a minimal performance impact when no errors are

present. When an error is detected, the access that caused the error is stalled while the correction

takes place. When the correction is complete, the access either continues with the corrected data,

or is retried. If the access is retried, it either hits in the cache again with the corrected data, or

misses in the cache and re-fetches the data from a lower level cache or from main memory. The

behavior for each RAM is shown in the following table.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

74

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

Table 2-24: Cache protection behavior

RAM

Protection

type

Protection

granule

Correction behavior

L1

instruction

cache tag

Parity,

SED

31 bits

Both lines in the cache set are invalidated, then the line requested is refetched from L2 or

external memory.

L1

instruction

cache

data

Parity,

SED

20 bits

Both lines in the cache set are invalidated, then the line requested is refetched from L2 or

external memory.

L2 TLB

tag

Parity,

SED

39 bits or 40 bits

Entry invalidated, new pagewalk started to refetch it.

L2 TLB

data

Parity,

SED

43 bits

Entry invalidated, new pagewalk started to refetch it.

L1 data

cache tag

ECC,

SECDED

32 bits

Line cleaned and invalidated from L1. SCU duplicate tags are used to get the correct address.

Line refetched from L2 or external memory, with single bit errors corrected as part of the

eviction.

L1 data

cache

data

ECC,

SECDED

32 bits

Line cleaned and invalidated from L1, with single bit errors corrected as part of the eviction.

Line refetched from L2 or external memory.

L1 data

cache

dirty

ECC,

SECDED

2 bits

Line cleaned and invalidated from L1, with single bit errors corrected as part of the eviction.

Only the dirty bit is protected. The other bits are performance hints, therefore do not cause a

functional failure if they are incorrect.

L2 cache

tag

ECC,

SECDED

30, 31, or 32 bits

depending on the

cache size.

Tag rewritten with correct value, access retried. If the error is uncorrectable then the tag is

invalidated.

L2 cache

victim

None

-

The victim RAM is used only as a performance hint. It does not result in a functional failure if

the contents are incorrect.

L2 cache

data

ECC,

SECDED

64 bits

Data is corrected inline, access might stall for an additional cycle or two while the correction

takes place.

L2 data

buffer

ECC,

SECDED

72 bits

Data is corrected inline, access might stall for an additional cycle or two while the correction

takes place.

Branch

predictor

None

-

The branch predictor RAMs are used only as a performance hint. They do not result in a

functional failure if the contents are incorrect.

When an ECC error occurs during a load instruction that takes multiple cycles to

complete, for example 

LDM

, the load instruction will re-execute. However, if a state

change occurs between the original load instruction and the second attempt, then

the second attempt will not execute. The first attempt could leave the register file

in an inconsistent state, since the register file may have been updated for locations

that did not have errors.

The following situations will cause a state change between the original instruction

and the second attempt:
• A hardware breakpoint, watchpoint, or vector catch has been set since the first

execution that is triggered on re-execution.

• The page tables have been modified since the first execution, resulting in an

instruction or data abort trap being taken on re-execution.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

75

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

In these situations, software may be able to observe that the original load

instruction committed some new state despite not fully completing.

2.8.3 Uncorrected errors and data poisoning

When an error is detected, the correction mechanism is triggered. However, if the error is a 2-bit

error in a RAM protected by ECC, then the error is not correctable.

The behavior on an uncorrected error depends on the type of RAM.

Uncorrected error detected in a data RAM

When an uncorrected error is detected in a data RAM:
• The chunk of data with the error is marked as poisoned. This poison information is then

transferred with the data and stored in the cache if the data is allocated back into a cache. The

poisoned data is stored per 64 bits of data, except in the L1 data cache where it is stored per

32 bits of data.

• If the interconnect supports poisoning, then the poison is passed along with the data when the

line is evicted from the cluster. No abort is generated when a line is poisoned, as the abort can

be deferred until the point when the poisoned data is consumed by a load or instruction fetch.

Uncorrected error detected in a tag or dirty RAM

When an uncorrected error is detected in a tag RAM or dirty RAM, either the address or coherency

state of the line is not known anymore, and the data cannot be poisoned. In this case, the line is

invalidated and an interrupt is generated to notify software that data has potentially been lost.

2.8.4 RAS error types

For a standard error record, three error types can be recorded.

When a processing element accesses memory or other state, errors might be detected in that

memory or state, and corrected, deferred, or signaled to the processing element as a detected

error. The component that detects an error is called a node.

Corrected error (CE)

An error was detected and corrected. It no longer infects the state of the node and has not

been silently propagated. The node continues to operate.

Deferred error (DE)

An error was detected, was not corrected, and was deferred. The error is not silently

propagated and may be latent in the system. The node continues to operate.

Uncorrected Error (UC)

An error was detected and was not corrected or deferred. The error is latent in the system.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

76

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

Uncorrected errors can have subtypes depending on whether the error was

produced or consumed at the node.

Errors produced at the node

For uncorrected errors that are produced at the node, the subtypes, in increasing severity, are:

Latent

The error has not been propagated. That is, the error was detected but not consumed, and

was not recorded as a deferred error.

Signaled

The error has not been silently propagated. The error has been or might have been

consumed, and was not recorded as a deferred error.

The producer cannot know if a consumer has architecturally consumed the

error. If it has definitely not been propagated to any consumer, and signaled

otherwise, an error might be marked as Latent.

Unrecoverable (UEU)

The error has not been silently propagated. The node cannot continue operating.

Uncontainable (UC)

The error might have been silently propagated. If the error cannot be isolated, the system

must be shut down to avoid catastrophic failure.

Errors consumed at the node

For uncorrected errors that are consumed at the node, the subtypes, in increasing severity, are:

Restartable (UEO)

The error has not been silently propagated. The node halts operation because of consuming

an error. The node does not rely on the corrupted data so can continue to operate without

repairing the error.

Recoverable (UER)

The error has not been silently propagated. The node halts operation. To continue, the node

relies on consuming the corrupted data. If software can locate and repair the error, the halted

operation can continue.

Unrecoverable (UEU)

The error has not been silently propagated. The node halts operation and cannot resume

from its halted state.

Uncontainable (UC)

The error might have been silently propagated. If the error cannot be isolated, the system

must be shut down to avoid catastrophic failure.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

77

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

Error status priority

The highest priority recorded error type is recorded in the Selected Error Record Primary Status

Register.

For more information, see 

3.3.10 ERR0STATUS, Error Record Primary Status Register

 on page

397.

2.8.5 Error synchronization barrier

The 

Error Synchronization Barrier

 (

ESB

) instruction synchronizes unrecoverable errors.

The RAS extension adds the 

ESB

 instruction used to synchronize unrecoverable errors.

Unrecoverable errors are containable errors consumed by the core and not silently propagated.

The 

ESB

 instruction allows efficient isolation of errors:

• The 

ESB

 instruction does not wait for completion of accesses that cannot generate an

asynchronous external abort. For example, if all external aborts are handled synchronously or it

is known that no such accesses are outstanding.

• The 

ESB

 instruction does not order accesses and does not guarantee a pipeline flush.

All unrecoverable errors must be synchronized by an 

ESB

 instruction. The 

ESB

 instruction

guarantees the following:
• All unrecoverable errors that are generated before the 

ESB

 instruction have pended a 

System

Error Interrupts

 (SEI) exception.

• If a physical SEI is pended by or was pending before the 

ESB

 instruction is executed:

◦ If the physical SEI is unmasked at the current Exception level, then it is taken before

completion of the 

ESB

 instruction.

◦ If the physical SEI is masked at the current Exception level, the pending SEI is cleared,

the SEI syndrome is recorded in DISR/DISR_EL1, and DISR/DISR_EL1.A is set to 1. This

indicates that the SEI was generated before the 

ESB

 by instructions that occur in program

order.

The 

ESB

 instruction also guarantees the following:

• SEIs generated before the 

ESB

 instruction are either taken before or at the 

ESB

 instruction, or

are pended in DISR/DISR_EL1.

• SEIs generated after the ESB are not pended in DISR/DISR_EL1.

This includes unrecoverable errors that are generated by instructions, translation table walks, and

instructions fetches on the same core.

DISR/DISR_EL1 can only be accessed at EL1 or above. If EL2 is implemented and

HCR/HCR_EL2.AMO is set to 1, then reads and writes of DISR/DISR_EL1 at Non-

secure EL1 access VDISR/VDISR_EL2.

3.2.39 DISR_EL1, Deferred Interrupt Status Register, EL1

 on page 284.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

78

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

3.2.55 HCR_EL2, Hypervisor Configuration Register, EL2

 on page 298.

3.2.105 VDISR_EL2, Virtual Deferred Interrupt Status Register, EL2

 on page

375.

2.8.6 Error reporting

Detected errors are reported in the Error Record Primary Syndrome Register, ERXSTATUS/

ERXSTATUS_EL1, and the Error Record Miscellaneous Register, ERXMISC0/ERXMISC0_EL1.

This includes errors that are successfully corrected, and errors that cannot be corrected. If multiple

errors occur on the same clock cycle, then only one error is reported but the OF (overflow) bit is

set.

There are two error records provided, which can be selected with the ERRSELR/ERRSELR_EL1

register. Record 0 is private to the core, and is updated on any error in the core RAMs including

L1 caches, TLB, and L2 cache. Record 1 records any error in the L3 and snoop filter RAMs and is

shared between all cores in the cluster.

If enabled in the ERXCTLR/ERXCTLR_EL1 register, all errors that are detected cause a fault

handling interrupt. The fault handling interrupt is generated on the nFAULTIRQ[0] pin for L3 and

snoop filter errors, or on the nFAULTIRQ[n+1] pin for core 

n

 L1 and L2 errors.

Errors that cannot be corrected, and therefore might result in data corruption, also cause an abort

or an interrupt signal to be asserted, alerting software to the error. The software can either attempt

to recover or can restart the system. Some errors are deferred by poisoning the data. This does not

cause an abort at the time of the error, but only when the error is consumed.
• Uncorrectable errors in the L1, L2, or L3 data RAMs when read by an instruction fetch, a load

instruction or a TLB pagewalk, might result in a precise data abort or prefetch abort.

• Uncorrectable errors in the L1, L2, or L3 data RAMs when the line is being evicted from a

cache causes the data to be poisoned. This might be because of a natural eviction, a linefill

from a higher level of cache, a cache maintenance operation, or a snoop. If the poisoned line is

evicted from the cluster for any reason, and the interconnect does not support data poisoning,

then the nERRIRQ[0] pin is asserted, if enabled.

• Uncorrectable errors in the L1 tag or dirty RAMs, or in the L2 tag RAMs, causes the nERRIRQ[n

+1] pin to be asserted for core 

n

, if enabled.

• Uncorrectable errors in the L3 tag RAMs or SCU snoop filter RAMs causes the nERRIRQ[0] pin

to be asserted, if enabled.

• When nERRIRQ is asserted it remains asserted until the error is cleared by a

write of 1 to the UE bit in the ERXSTATUS/ERXSTATUS_EL1 register.

• Arm

®

 recommends that the nERRIRQ pin is connected to the interrupt

controller so that an interrupt or system error is generated when the pin is

asserted.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

79

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

The fault and error interrupt pins are cleared by writing to the ERXSTATUS/ERXSTATUS_EL1

registers.

When a snoop hits on a line with an uncorrectable data error, the data is returned if required by

the snoop, but the snoop response indicates that the data is poisoned. If a snoop hits on a tag that

has an uncorrectable error, then it is treated as a snoop miss, because the error means that it is

unknown if the cache line is valid or not.

The following accesses update the Error Record Primary Syndrome Register:
• ECC error detected in any of the RAM protected by ECC.
• Poisoned data received from the DSU when the CPU does not support ECC protection.
• Dirty data received from the DSU and the data is flagged with a data error.

It is possible for an error to be counted more than once. For example, multiple

accesses can read the location with the error before the line is evicted.

Observations and constraints

The following observations should be made about ERRXSTATUS and ERRXMISCn registers:
• If two or more memory errors occur in the same cycle, only one error is reported and the

other error count is incremented. If more than two errors occur on the same cycle then

the additional errors will not be counted.

• If two or more first memory error events from different RAMs occur in the same cycle,

one of the errors is selected arbitrarily.

• If a new error arrives while the ERRXSTATUS.V bit is set, the way, index, and level

information is not updated, but the other error field or the repeat error field is updated.

• If two or more memory errors from different RAMs that do not match the level, way and

index information in this register when the ERRXSTATUS.V bit is set, occur in the same

cycle, the Other error count field is only incremented once.

• This register is not reset on a warm reset.

2.8.7 Error injection

To support testing of error handling software, the Cortex

®

-A55 core can inject errors into the error

detection logic.

The following table describes the possible types of errors that the core can encounter and

therefore inject.

Table 2-25: Errors injected in the Cortex

®

-A55 core

Error type

Description

Corrected errors

A CE is generated for a single ECC error on L1 data cache access.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

80

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

Error type

Description

Deferred errors

A DE is generated for a double ECC error on eviction of a cache line from the L1 to the L2, or as a result of a snoop

on the L1.

Uncontainable

errors

A UC is generated for a double ECC error on the L1 TAG RAM following an eviction.

Latent error

A UEO is generated as a double ECC error on an L1 data read.

Error registers

The following table describes the registers that handle error injection in the Cortex

®

-A55 core.

Table 2-26: Error injection registers

Register name

Description

ERR0PFGF

The ERR Pseudo Fault Generation Feature register defines which errors can be injected.

ERR0PFGCTL

The ERR Pseudo Fault Generation Control register controls the errors that are injected.

ERR0PFGCDN

The Selected Pseudo Fault Generation Count Down register controls the fault injection timing.

This mechanism simulates the corruption of any RAM but the data is not actually

corrupted.

See also:

3.3.9 ERR0PFGF, Error Pseudo Fault Generation Feature Register

 on page 395.

3.3.8 ERR0PFGCTL, Error Pseudo Fault Generation Control Register

 on page 393.

3.3.7 ERR0PFGCDN, Error Pseudo Fault Generation Count Down Register

 on page 392.

2.9 Generic Interrupt Controller CPU interface

This chapter describes the Cortex

®

-A55 core implementation of the Arm 

Generic Interrupt

Controller

 (GIC) CPU interface.

2.9.1 About the Generic Interrupt Controller CPU interface

The GIC CPU interface, when integrated with an external distributor component, is a resource for

supporting and managing interrupts in a cluster system.

The GIC CPU interface hosts registers to mask, identify, and control states of interrupts forwarded

to that core. There is a separate GIC CPU interface for each core in the system.

The Cortex

®

-A55 core implements the GIC CPU interface as described in the 

Arm

®

 Generic

Interrupt Controller Architecture Specification

. This interfaces with an external GICv3 or GICv4

interrupt distributor component within the system.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

81

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Functional description

This chapter describes only features that are specific to the Cortex

®

-A55 core

implementation. Additional information specific to the DSU can be found in 

 Arm

®

DynamIQ

 Shared Unit Technical Reference Manual

.

The GICv4 architecture supports:
• Two security states.
• Interrupt virtualization.

Software-generated Interrupts

 (SGIs).

• Message Based Interrupts.
• System register access for the CPU interface.
• Interrupt masking and prioritization.
• Cluster environments, including systems that contain more than eight cores.
• Wake-up events in power management environments.

The GIC includes interrupt grouping functionality that supports:
• Configuring each interrupt to belong to an interrupt group.
• Signaling Group 1 interrupts to the target core using either the IRQ or the FIQ exception

request.

• Signaling Group 0 interrupts to the target core using the FIQ exception request only.
• A unified scheme for handling the priority of Group 0 and Group 1 interrupts.

This chapter describes only features that are specific to the Cortex

®

-A55 core implementation.

2.9.2 Bypassing the CPU interface

The GIC CPU interface is always implemented within the Cortex

®

-A55 core.

However, you can disable it if you assert the GICCDISABLE signal HIGH at reset. If the GIC is

enabled, the input pins nVIRQ and nVFIQ must be tied off to HIGH. This is because the internal

GIC CPU interface generates the virtual interrupt signals to the cores. The nIRQ and nFIQ signals

are controlled by software, therefore there is no requirement to tie them HIGH. If you disable the

GIC CPU interface, the input pins nVIRQ and nVFIQ can be driven by an external GIC in the SoC.

If the Cortex

®

-A55 core is not integrated with an external GICv3 or GICv4 distributor component

in the system, then you can disable the GIC CPU interface by asserting the GICCDISABLE signal

HIGH at reset.

GIC system register access generates 

UNDEFINED

 instruction exceptions when the GICCDISABLE

signal is HIGH.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

82

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3. Register descriptions

This part describes the system registers of the Cortex

®

-A55 core. Registers access information is

provided in the registers summary topics.

3.1 AArch32 system registers

This chapter describes the system registers in the AArch32 state.

3.1.1 AArch32 registers

This chapter provides information about AArch32 system registers with 

IMPLEMENTATION DEFINED

bit fields and 

IMPLEMENTATION DEFINED

 registers associated with the core.

The chapter provides 

IMPLEMENTATION SPECIFIC

 information, for a complete description of the

registers, see the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.The chapter is

presented as follows:

AArch32 architectural system register summary

This section identifies the AArch32 architecturally defined registers implemented in the

Cortex

®

-A55 core.

The first table identifies the registers that have 

IMPLEMENTATION DEFINED

 bit fields. The

register descriptions for these registers only contain information about the 

IMPLEMENTATION

DEFINED

 bits.

The second table identifies the other architecturally defined registers that are implemented

in the Cortex

®

-A55 core. These registers are described in the 

Arm

®

 Architecture Reference

Manual for A-profile architecture

.

AArch32 

IMPLEMENTATION DEFINED

 register summary

This section identifies the AArch32 registers implemented in the Cortex

®

-A55 core that are

IMPLEMENTATION DEFINED

.

AArch32 registers by functional group

This section groups the 

IMPLEMENTATION DEFINED

 registers and architectural system registers

with 

IMPLEMENTATION DEFINED

 bit fields, as identified previously, by function. It also provides

reset details for key register types.

Register descriptions

The remainder of the chapter provides register descriptions of the 

IMPLEMENTATION DEFINED

registers and architectural system registers with 

IMPLEMENTATION DEFINED

 bit fields, as

identified previously. These are listed in alphabetic order.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

83

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.2 AArch32 architectural system register summary

This section identifies the AArch32 architectural system registers implemented in the Cortex

®

-A55

core.

The section contains two tables:

Registers with 

IMPLEMENTATION DEFINED

 bit fields

This table identifies the architecturally defined registers in the Cortex

®

-A55 core that have

IMPLEMENTATION DEFINED

 bit fields. The register descriptions for these registers only contain

information about the 

IMPLEMENTATION DEFINED

 features.

See 

Table 3-1: Registers with IMPLEMENTATION DEFINED bit fields

 on page 84.

Other architecturally defined registers

This table identifies the other architecturally defined registers that are implemented in the

Cortex

®

-A55 core. These registers are described in the 

Arm

®

 Architecture Reference Manual

for A-profile architecture

.

See 

Table 3-2: Other architecturally defined registers

 on page 86.

Registers with IMPLEMENTATION DEFINED bit fields

For all the registers listed in the following table, coproc==

0b1111

.

Table 3-1: Registers with IMPLEMENTATION DEFINED bit fields

Name

CRn Opc1 CRm Opc2 Width Description

ACTLR

c1

0

c0

1

32

3.1.5 ACTLR, Auxiliary Control Register

 on page 94

ACTLR2

c1

0

c0

3

32

3.1.6 ACTLR2, Auxiliary Control Register 2

 on page 97

AIDR

c0

1

c0

7

32

3.1.9 AIDR, Auxiliary ID Register

 on page 100

ADFSR

c5

0

c1

0

32

3.1.7 ADFSR, Auxiliary Data Fault Status Register

 on page 98

AIFSR

c5

0

c1

1

32

3.1.10 AIFSR, Auxiliary Instruction Fault Status Register

 on page 101

AMAIR0

c10 0

c3

0

32

3.1.11 AMAIR0, Auxiliary Memory Attribute Indirection Register 0

 on page 102

AMAIR1

c10 0

c3

1

32

3.1.12 AMAIR1, Auxiliary Memory Attribute Indirection Register 1

 on page 103

CCSIDR

c0

1

c0

0

32

3.1.15 CCSIDR, Cache Size ID Register

 on page 107

CLIDR

c0

1

c0

1

32

3.1.16 CLIDR, Cache Level ID Register

 on page 110

CPACR

c1

0

c0

2

32

3.1.17 CPACR, Architectural Feature Access Control Register

 on page 112

CSSELR

c0

2

c0

0

32

3.1.26 CSSELR, Cache Size Selection Register

 on page 128

CTR

c0

0

c0

1

32

3.1.27 CTR, Cache Type Register

 on page 129

DFSR

c5

0

c0

0

32

3.1.28 DFSR, Data Fault Status Register

 on page 131

DISR

c12 0

c1

1

32

3.1.29 DISR, Deferred Interrupt Status Register

 on page 133

ERRIDR

c5

0

c3

0

32

3.1.30 ERRIDR, Error ID Register

 on page 137

ERRSELR

c5

0

c3

1

32

3.1.31 ERRSELR, Error Record Select Register

 on page 138

ERXADDR

c5

0

c4

3

32

3.1.32 ERXADDR, Selected Error Record Address Register

 on page 139

ERXADDR2 c5

0

c4

7

32

3.1.33 ERXADDR2, Selected Error Record Address Register 2

 on page 139

ERXCTLR

c5

0

c4

1

32

3.1.34 ERXCTLR, Selected Error Record Control Register

 on page 139

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

84

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

CRn Opc1 CRm Opc2 Width Description

ERXCTLR2 c5

0

c4

5

32

3.1.35 ERXCTLR2, Selected Error Record Control Register 2

 on page 139

ERXFR

c5

0

c4

0

32

3.1.36 ERXFR, Selected Error Record Feature Register

 on page 139

ERXFR2

c5

0

c4

4

32

3.1.37 ERXFR2, Selected Error Record Feature Register 2

 on page 140

ERXMISC0 c5

0

c5

0

32

3.1.38 ERXMISC0, Selected Error Miscellaneous Register 0

 on page 140

ERXMISC1 c5

0

c5

1

32

3.1.39 ERXMISC1, Selected Error Miscellaneous Register 1

 on page 140

ERXMISC2 c5

0

c5

4

32

3.1.40 ERXMISC2, Selected Error Record Miscellaneous Register 2

 on page 140

ERXMISC3 c5

0

c5

5

32

3.1.41 ERXMISC3, Selected Error Record Miscellaneous Register 3

 on page 141

ERXSTATUS c5

0

c4

2

32

3.1.45 ERXSTATUS, Selected Error Record Primary Status Register

 on page 144

FCSEIDR

c13 0

c0

0

32

3.1.46 FCSEIDR, FCSE Process ID Register

 on page 145

FPSID

c5

4

c3

1

32

Floating-Point System ID Register. For more information, see the 

 Arm

®

 Cortex

®

-A55 Core

Advanced SIMD and Floating-point Support Technical Reference Manual

.

HACR

c1

4

c1

7

32

3.1.47 HACR, Hyp Auxiliary Configuration Register

 on page 145

HACTLR

c1

4

c0

1

32

3.1.48 HACTLR, Hyp Auxiliary Control Register

 on page 146

HACTLR2

c1

4

c0

3

32

3.1.49 HACTLR2, Hyp Auxiliary Control Register 2

 on page 149

HADFSR

c5

4

c1

0

32

3.1.50 HADFSR, Hyp Auxiliary Data Fault Status Syndrome Register

 on page 149

HAIFSR

c5

4

c1

1

32

3.1.51 HAIFSR, Hyp Auxiliary Instruction Fault Status Syndrome Register

 on page 150

HAMAIR0

c10 4

c3

0

32

3.1.52 HAMAIR0, Hyp Auxiliary Memory Attribute Indirection Register 0

 on page 151

HAMAIR1

c10 4

c3

1

32

3.1.53 HAMAIR1, Hyp Auxiliary Memory Attribute Indirection Register 1

 on page 152

HCR

c1

4

c1

0

32

3.1.54 HCR, Hyp Configuration Register

 on page 152

HCR2

c1

4

c1

4

32

3.1.55 HCR2, Hyp Configuration Register 2

 on page 154

HSR

c5

4

c2

0

32

3.1.57 HSR, Hyp Syndrome Register

 on page 156

ID_AFR0

c0

0

c1

3

32

3.1.59 ID_AFR0, Auxiliary Feature Register 0

 on page 158

ID_DFR0

c0

0

c1

2

32

3.1.60 ID_DFR0, Debug Feature Register 0

 on page 159

ID_ISAR0

c0

0

c2

0

32

3.1.61 ID_ISAR0, Instruction Set Attribute Register 0

 on page 161

ID_ISAR1

c0

0

c2

1

32

3.1.62 ID_ISAR1, Instruction Set Attribute Register 1

 on page 162

ID_ISAR2

c0

0

c2

2

32

3.1.63 ID_ISAR2, Instruction Set Attribute Register 2

 on page 164

ID_ISAR3

c0

0

c2

3

32

3.1.64 ID_ISAR3, Instruction Set Attribute Register 3

 on page 167

ID_ISAR4

c0

0

c2

4

32

3.1.65 ID_ISAR4, Instruction Set Attribute Register 4

 on page 169

ID_ISAR5

c0

0

c2

5

32

3.1.66 ID_ISAR5, Instruction Set Attribute Register 5

 on page 170

ID_ISAR6

c0

0

c2

7

32

3.1.67 ID_ISAR6, Instruction Set Attribute Register 6

 on page 172

ID_MMFR0 c0

0

c1

4

32

3.1.68 ID_MMFR0, Memory Model Feature Register 0

 on page 174

ID_MMFR1 c0

0

c1

5

32

3.1.69 ID_MMFR1, Memory Model Feature Register 1

 on page 175

ID_MMFR2 c0

0

c1

6

32

3.1.70 ID_MMFR2, Memory Model Feature Register 2

 on page 177

ID_MMFR3 c0

0

c1

7

32

3.1.71 ID_MMFR3, Memory Model Feature Register 3

 on page 179

ID_MMFR4 c0

0

c2

6

32

3.1.72 ID_MMFR4, Memory Model Feature Register 4

 on page 181

ID_PFR0

c0

0

c1

0

32

3.1.73 ID_PFR0, Processor Feature Register 0

 on page 183

ID_PFR1

c0

0

c1

1

32

3.1.74 ID_PFR1, Processor Feature Register 1

 on page 184

IFSR

c5

0

c0

1

32

3.1.75 IFSR, Instruction Fault Status Register

 on page 186

MIDR

c0

0

c0

0, 4,

or 7

32

3.1.76 MIDR, Main ID Register

 on page 188

MPIDR

c0

0

c0

5

32

3.1.77 MPIDR, Multiprocessor Affinity Register

 on page 189

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

85

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

CRn Opc1 CRm Opc2 Width Description

PAR (32 bits

access)

c7

0

c4

0

32

3.1.78 PAR, Physical Address Register

 on page 190

PAR (64 bits

access)

-

0

c7

-

64

3.1.78 PAR, Physical Address Register

 on page 190

REVIDR

c0

0

c0

6

32

3.1.79 REVIDR, Revision ID Register

 on page 196

SCR

c1

0

c1

0

32

3.1.80 SCR, Secure Configuration Register

 on page 196

SCTLR

c1

0

c0

0

32

3.1.81 SCTLR, System Control Register

 on page 197

SDCR

c1

0

c3

1

32

3.1.82 SDCR, Secure Debug Control Register

 on page 200

TTBCR

c2

0

c0

2

32

3.1.83 TTBCR, Translation Table Base Control Register

 on page 202

TTBR0 (32

bits access)

c2

0

c0

0

32

3.1.85 TTBR0, Translation Table Base Register 0

 on page 209

TTBR0 (64

bits access)

-

0

c2

-

64

3.1.85 TTBR0, Translation Table Base Register 0

 on page 209

TTBR1 (32

bits access)

c2

0

c0

1

32

3.1.86 TTBR1, Translation Table Base Register 1

 on page 211

TTBR1 (64

bits access)

-

1

c2

-

64

3.1.86 TTBR1, Translation Table Base Register 1

 on page 211

VDFSR

c5

4

c2

3

32

3.1.87 VDFSR, Virtual SError Exception Syndrome Register

 on page 213

VDISR

c12 4

c1

1

32

3.1.88 VDISR, Virtual Deferred Interrupt Status Register

 on page 214

VMPIDR

c0

4

c0

5

32

3.1.89 VMPIDR, Virtualization Multiprocessor ID Register

 on page 217

VPIDR

c0

4

c0

0

32

3.1.90 VPIDR, Virtualization Processor ID Register

 on page 218

VTCR

c2

4

c1

2

32

3.1.91 VTCR, Virtualization Translation Control Register

 on page 218

VTTBR

-

6

c2

-

64

3.1.92 VTTBR, Virtualization Translation Table Base Register

 on page 220

Other architecturally defined registers

For the registers listed in the following table, coproc==

0b1111

, except for:

• Jazelle ID Register.
• Jazelle Main Configuration Register.
• Jazelle OS Control Register.

For these registers, coproc==

0b1110

.

Table 3-2: Other architecturally defined registers

Name

CRn

Opc1

CRm

Opc2

Width

description

CPACR

c1

0

c0

2

32

Architectural Feature Access Control Register

CNTFRQ

c14

0

c0

0

32

Timer Clock Ticks per Second

CNTHCTL

c14

4

c1

0

32

Timer Hyp Control register

CNTHP_CTL

c14

4

c2

1

32

Counter-timer Hyp Physical Timer Control register

CNTHP_CVAL

-

6

c14

-

64

Counter-timer Hyp Physical CompareValue register

CNTHP_TVAL

c14

4

c2

0

32

Counter-timer Hyp Physical Timer TimerValue register

CNTKCTL

c14

0

c1

0

32

Counter-timer Kernel Control register

CNTP_CTL

c14

0

c2

1

32

Counter-timer Physical Timer Control register

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

86

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

CRn

Opc1

CRm

Opc2

Width

description

CNTP_CVAL

-

2

c14

-

64

Counter-timer Physical Timer CompareValue register

CNTP_TVAL

c14

0

c2

0

32

Counter-timer Physical Timer TimerValue register

CNTPCT

-

0

c14

-

64

Counter-timer Physical Count register

CNTV_CTL

c14

0

c3

1

32

Counter-timer Virtual Timer Control register

CNTV_CVAL

-

3

c14

-

64

Counter-timer Virtual Timer CompareValue register

CNTV_TVAL

c14

0

c3

0

32

Counter-timer Virtual Timer TimerValue register

CNTVCT

-

1

c14

-

64

Counter-timer Virtual Count register

CNTVOFF

-

4

c14

-

64

Counter-timer Virtual Offset register

CONTEXTIDR

c13

0

c0

1

32

Context ID Register

DACR

c3

0

c0

0

32

Domain Access Control Register

DFAR

c6

0

c0

0

32

Data Fault Address Register

DLR

c4

3

c5

1

32

Debug Link Register

DSPSR

c4

3

c5

0

32

Debug Saved Program Status Register

FPEXC

c5

4

c3

0

32

Floating-point Exception Control register

HCPTR

c1

4

c1

2

32

Hypervisor Coprocessor Trap Register

HDCR

c1

4

c1

1

32

Hypervisor Debug Control Register

HDFAR

c6

4

c0

0

32

Hypervisor Data Fault Address

HIFAR

c6

4

c0

2

32

Hypervisor Instruction Fault Address

HMAIR0

c10

4

c2

0

32

Hypervisor Memory Attribute Indirection Register 0

HMAIR1

c10

4

c2

1

32

Hypervisor Memory Attribute Indirection Register 1

HPFAR

c6

4

c0

4

32

Hypervisor IPA Fault Address

HTCR

c2

4

c0

2

32

Hypervisor Translation Control Register

HTPIDR

c13

4

c0

2

32

Hypervisor Software Thread ID Register

HTTBR

-

4

c2

-

64

Hypervisor Translation Table Base Register

HVBAR

c12

4

c0

0

32

Hypervisor Vector Base Address

IFAR

c6

0

c0

2

32

Instruction Fault Address Register

ISR

c12

0

c1

0

32

Interrupt Status Register

JIDR

c0

7

c0

0

32

Jazelle ID Register

JMCR

c2

7

c0

0

32

Jazelle Main Configuration Register

JOSCR

c1

7

c0

0

32

Jazelle OS Control Register

MAIR0

c10

0

c2

1

32

Memory Attribute Indirection Register 0

MAIR1

c10

0

c2

1

32

Memory Attribute Indirection Register 1

MVBAR

c12

0

c0

1

32

Monitor Vector Base Address Register

MVFR0

c0

2

c3

0

32

Media and VFP Feature Register 0

MVFR1

c0

2

c3

1

32

Media and VFP Feature Register 1

MVFR2

c0

2

c3

2

32

Media and VFP Feature Register 2

NMRR

c10

0

c2

1

32

Normal Memory Remap Register

PRRR

c10

0

c2

0

32

Primary Region Remap Register

RMR

c12

0

c0

2

32

Reset Management Register

SDER

c1

0

c1

1

32

Secure Debug Enable Register

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

87

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

CRn

Opc1

CRm

Opc2

Width

description

TCMTR

c0

0

c0

2

32

TCM Type Register

TLBTR

c0

0

c0

3

32

TLB Type Register

TPIDRPRW

c13

0

c0

4

32

Privileged Only Thread ID Register

TPIDRURO

c13

0

c0

3

32

User Read Only Thread ID Register

TPIDRURW

c13

0

c0

2

32

User Read/Write Thread ID Register

VBAR

c12

0

c0

0

32

Vector Base Address Register

3.1.3 AArch32 IMPLEMENTATION DEFINED register summary

This section identifies the AArch32 registers implemented in the Cortex

®

-A55 core that are

IMPLEMENTATION DEFINED

. The list of registers is sorted by opcode.

The registers that are implemented but are architecturally defined are described in the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Table 3-3: Cortex

®

-A55 AArch32 IMPLEMENTATION DEFINED registers

Name

Copro CRn Opc1 CRm Opc2 Width Description

AHTCR

cp15 c15 4

c7

0

32

3.1.8 AHTCR, Auxiliary Hypervisor Translation Control Register

 on page 98

ATTBCR

cp15 c15 0

c7

1

32

3.1.13 ATTBCR, Auxiliary Translation Table Base Control Register

 on page

103

AVTCR

cp15 c15 4

c7

1

32

3.1.14 AVTCR, Auxiliary Virtualized Translation Control Register

 on page 106

CPUACTLR

cp15 -

0

c15 -

64

3.1.18 CPUACTLR, CPU Auxiliary Control Register

 on page 112

CPUCFR

cp15 c15 0

c0

0

32

3.1.19 CPUCFR, CPU Configuration Register

 on page 114

CPUECTLR

cp15 -

4

c15 -

64

3.1.20 CPUECTLR, CPU Extended Control Register

 on page 115

CPUPCR

cp15 c15 6

c8

1

64

3.1.21 CPUPCR, CPU Private Control Register

 on page 119

CPUPMR

cp15 c15 6

c8

3

64

3.1.22 CPUPMR, CPU Private Mask Register

 on page 121

CPUPOR

cp15 c15 6

c8

2

64

3.1.23 CPUPOR, CPU Private Operation Register

 on page 122

CPUPSELR

cp15 c15 6

c8

0

32

3.1.24 CPUPSELR, CPU Private Selection Register

 on page 124

CPUPWRCTLR cp15 c15 0

c2

7

32

3.1.25 CPUPWRCTLR, CPU Power Control Register

 on page 125

ERR0PFGF

3

N/A

N/A N/A N/A N/A 32

3.3.9 ERR0PFGF, Error Pseudo Fault Generation Feature Register

 on page

395

ERR0PFGCTL

3

N/A

N/A N/A N/A N/A 32

3.3.8 ERR0PFGCTL, Error Pseudo Fault Generation Control Register

 on page

393

ERR0PFGCDN

3

N/A

N/A N/A N/A N/A 32

3.3.7 ERR0PFGCDN, Error Pseudo Fault Generation Count Down Register

 on

page 392

ERXPFGCDN cp15 c15 0

c2

2

32

3.1.42 ERXPFGCDN, Selected Error Pseudo Fault Generation Count Down

Register

 on page 141

ERXPFGCTL

cp15 c15 0

c2

1

32

3.1.43 ERXPFGCTL, Selected Error Pseudo Fault Generation Control Register

on page 142

ERXPFGF

cp15 c15 0

c2

0

32

3.1.44 ERXPFGF, Selected Pseudo Fault Generation Feature Register

 on page

143

3

There is no direct access to ERR0* registers using 

MCR

 and 

MRC

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

88

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

The following table shows the 32-bit wide 

IMPLEMENTATION DEFINED

 Cluster registers. Details of

these registers can be found in 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

Table 3-4: Cluster registers

Name

Copro CRn Opc1 CRm Opc2 Width

Description

CLUSTERCFR

cp15

c15 0

c3

0

32-bit

Cluster configuration register.

CLUSTERIDR

cp15

c15 0

c3

1

32-bit

Cluster main revision ID.

CLUSTEREVIDR

cp15

c15 0

c3

2

32-bit

Cluster ECO ID.

CLUSTERACTLR

cp15

c15 0

c3

3

32-bit

Cluster auxiliary control register.

CLUSTERECTLR

cp15

c15 0

c3

4

32-bit

Cluster extended control register.

CLUSTERPWRCTLR

cp15

c15 0

c3

5

32-bit

Cluster power control register.

CLUSTERPWRDN

cp15

c15 0

c3

6

32-bit

Cluster power down register.

CLUSTERPWRSTAT

cp15

c15 0

c3

7

32-bit

Cluster power status register.

CLUSTERTHREADSID

cp15

c15 0

c4

0

32-bit

Cluster thread scheme ID register.

CLUSTERACPSID

cp15

c15 0

c4

1

32-bit

Cluster ACP scheme ID register.

CLUSTERSTASHSID

cp15

c15 0

c4

2

32-bit

Cluster stash scheme ID register.

CLUSTERPARTCR

cp15

c15 0

c4

3

32-bit

Cluster partition control register.

CLUSTERBUSQOS

cp15

c15 0

c4

4

32-bit

Cluster bus QoS control register.

CLUSTERL3HIT

cp15

c15 0

c4

5

32-bit

Cluster L3 hit counter register.

CLUSTERL3MISS

cp15

c15 0

c4

6

32-bit

Cluster L3 miss counter register.

CLUSTERTHREADSIDOVR

cp15

c15 0

c4

7

32-bit

Cluster thread scheme ID override register.

CLUSTERPM*

cp15

c15 0 or 6 c5-c6 0-7

32-bit or 64-bit

Cluster PMU registers.

3.1.4 AArch32 registers by functional group

This section identifies the AArch32 registers by their functional groups and applies to the registers

in the core that are 

IMPLEMENTATION DEFINED

 or have micro-architectural bit fields.

Reset values are provided for these registers.

Table 3-5: Identification registers

Name

Type

Reset

Description

AIDR

RO

0x00000000

3.1.9 AIDR, Auxiliary ID Register

on page 100

CCSIDR

RO

-

3.1.15 CCSIDR, Cache Size ID

Register

 on page 107

CLIDR

RO

UNK

Unknown: [31:30], [25:24], [22:21],

8, 5

'b1: [1:0]

'b0: [29:26], 23, [20:9], [7:6], [4:2]

3.1.16 CLIDR, Cache Level ID

Register

 on page 110

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

89

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

Type

Reset

Description

CSSELR

RW

0x00000000

, [2:0] UNK.

3.1.26 CSSELR, Cache Size

Selection Register

 on page

128

CTR

RO

0x84448004

3.1.27 CTR, Cache Type

Register

 on page 129

ID_AFR0

RO

0x00000000

3.1.59 ID_AFR0, Auxiliary

Feature Register 0

 on page

158

ID_DFR0

RO

0x03010066

3.1.60 ID_DFR0, Debug Feature

Register 0

 on page 159

Bits [19:16] are 

0x1

 if ETM

is implemented, and 

0x0

otherwise.

ID_ISAR0

RO

0x02101110

3.1.61 ID_ISAR0, Instruction

Set Attribute Register 0

 on page

161

ID_ISAR1

RO

0x13112111

3.1.62 ID_ISAR1, Instruction

Set Attribute Register 1

 on page

162

ID_ISAR2

RO

0x21232042

3.1.63 ID_ISAR2, Instruction

Set Attribute Register 2

 on page

164

ID_ISAR3

RO

0x01112131

3.1.64 ID_ISAR3, Instruction

Set Attribute Register 3

 on page

167

ID_ISAR4

RO

0x00011142

3.1.65 ID_ISAR4, Instruction

Set Attribute Register 4

 on page

169

ID_ISAR5

RO

0x00011121

3.1.66 ID_ISAR5, Instruction

Set Attribute Register 5

 on page

170

ID_ISAR5 has the value

0x00010001

 if the

Cryptographic Extension is not

implemented and enabled.

ID_ISAR6

RO

0x00000010

3.1.67 ID_ISAR6, Instruction

Set Attribute Register 6

 on page

172

ID_MMFR0

RO

0x10201105

3.1.68 ID_MMFR0, Memory

Model Feature Register 0

 on

page 174

ID_MMFR1

RO

0x40000000

3.1.69 ID_MMFR1, Memory

Model Feature Register 1

 on

page 175

ID_MMFR2

RO

0x01260000

3.1.70 ID_MMFR2, Memory

Model Feature Register 2

 on

page 177

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

90

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

Type

Reset

Description

ID_MMFR3

RO

0x02102211

3.1.71 ID_MMFR3, Memory

Model Feature Register 3

 on

page 179

ID_MMFR4

RO

0x00021110

3.1.72 ID_MMFR4, Memory

Model Feature Register 4

 on

page 181

ID_PFR0

RO

0x00000131

3.1.73 ID_PFR0, Processor

Feature Register 0

 on page

183

ID_PFR1

RO

0x10011011

3.1.74 ID_PFR1, Processor

Feature Register 1

 on page

184

Bits [31:28] are 

0x1

 if the GIC

CPU interface is implemented

and enabled, and 

0x0

otherwise.

MIDR

RO

0x412FD050

3.1.76 MIDR, Main ID Register

on page 188

MPIDR

RO

-

3.1.77 MPIDR, Multiprocessor

Affinity Register

 on page 189

REVIDR

RO

0x00000000

3.1.79 REVIDR, Revision ID

Register

 on page 196

VMPIDR

RW

-

3.1.89 VMPIDR, Virtualization

Multiprocessor ID Register

 on

page 217

The reset value is the value of

MPIDR.

VPIDR

RW

0x412FD050

3.1.90 VPIDR, Virtualization

Processor ID Register

 on page

218

Table 3-6: Other system control registers

Name

Type

Description

ACTLR

RW

3.1.5 ACTLR, Auxiliary Control Register

 on page 94

ACTLR2

RW

3.1.6 ACTLR2, Auxiliary Control Register 2

 on page 97

HACTLR

RW

3.1.48 HACTLR, Hyp Auxiliary Control Register

 on page 146

HACTLR2

RW

3.1.49 HACTLR2, Hyp Auxiliary Control Register 2

 on page 149

HSCTLR

RW

3.1.56 HSCTLR, Hyp System Control Register

 on page 155

SCTLR

RW

3.1.81 SCTLR, System Control Register

 on page 197

Table 3-7: RAS registers

Name

Type Description

DISR

RW

3.1.29 DISR, Deferred Interrupt Status Register

 on page 133

ERRIDR

RO

3.1.30 ERRIDR, Error ID Register

 on page 137

ERRSELR

RW

3.1.31 ERRSELR, Error Record Select Register

 on page 138

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

91

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

Type Description

ERXADDR

RW

3.1.32 ERXADDR, Selected Error Record Address Register

 on page 139

ERXADDR2

RW

3.1.33 ERXADDR2, Selected Error Record Address Register 2

 on page 139

ERXCTLR

RW

3.1.34 ERXCTLR, Selected Error Record Control Register

 on page 139

ERXCTLR2

RW

3.1.35 ERXCTLR2, Selected Error Record Control Register 2

 on page 139

ERXFR

RO

3.1.36 ERXFR, Selected Error Record Feature Register

 on page 139

ERXFR2

RO

3.1.37 ERXFR2, Selected Error Record Feature Register 2

 on page 140

ERXMISC0

RW

3.1.38 ERXMISC0, Selected Error Miscellaneous Register 0

 on page 140

ERXMISC1

RW

3.1.39 ERXMISC1, Selected Error Miscellaneous Register 1

 on page 140

ERXMISC2

RW

3.1.40 ERXMISC2, Selected Error Record Miscellaneous Register 2

 on page 140

ERXMISC3

RW

3.1.41 ERXMISC3, Selected Error Record Miscellaneous Register 3

 on page 141

ERXPFGCDN

RW

3.1.42 ERXPFGCDN, Selected Error Pseudo Fault Generation Count Down Register

 on page 141

ERXPFGCTL

RW

3.1.43 ERXPFGCTL, Selected Error Pseudo Fault Generation Control Register

 on page 142

ERXPFGF

RO

3.1.44 ERXPFGF, Selected Pseudo Fault Generation Feature Register

 on page 143

ERXSTATUS

RW

3.1.45 ERXSTATUS, Selected Error Record Primary Status Register

 on page 144

HCR2

RW

3.1.55 HCR2, Hyp Configuration Register 2

 on page 154

VDFSR

RW

3.1.87 VDFSR, Virtual SError Exception Syndrome Register

 on page 213

VDISR

RW

3.1.88 VDISR, Virtual Deferred Interrupt Status Register

 on page 214

Table 3-8: Virtual Memory control registers

Name

Type

Description

AMAIR0

RW

3.1.11 AMAIR0, Auxiliary Memory Attribute Indirection Register 0

 on page 102

AMAIR1

RW

3.1.12 AMAIR1, Auxiliary Memory Attribute Indirection Register 1

 on page 103

AHTCR

RW

3.1.8 AHTCR, Auxiliary Hypervisor Translation Control Register

 on page 98

ATTBCR

RW

3.1.13 ATTBCR, Auxiliary Translation Table Base Control Register

 on page 103

AVTCR

RW

3.1.14 AVTCR, Auxiliary Virtualized Translation Control Register

 on page 106

HAMAIR0

RW

3.1.52 HAMAIR0, Hyp Auxiliary Memory Attribute Indirection Register 0

 on page 151

HAMAIR1

RW

3.1.53 HAMAIR1, Hyp Auxiliary Memory Attribute Indirection Register 1

 on page 152

HTTBR

RW

3.1.58 HTTBR, Hyp Translation Table Base Register

 on page 158

SCTLR

RW

3.1.81 SCTLR, System Control Register

 on page 197

TTBCR

RW

3.1.83 TTBCR, Translation Table Base Control Register

 on page 202

TTBR0

RW

3.1.85 TTBR0, Translation Table Base Register 0

 on page 209

TTBR1

RW

3.1.86 TTBR1, Translation Table Base Register 1

 on page 211

VTCR

RW

3.1.91 VTCR, Virtualization Translation Control Register

 on page 218

VTTBR

RW

3.1.92 VTTBR, Virtualization Translation Table Base Register

 on page 220

Table 3-9: Virtualization registers

Name

Type

Description

HACR

RW

3.1.47 HACR, Hyp Auxiliary Configuration Register

 on page 145

HACTLR

RW

3.1.48 HACTLR, Hyp Auxiliary Control Register

 on page 146

HACTLR2

RW

3.1.49 HACTLR2, Hyp Auxiliary Control Register 2

 on page 149

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

92

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

Type

Description

HADFSR

RW

3.1.50 HADFSR, Hyp Auxiliary Data Fault Status Syndrome Register

 on page 149

HAISFR

RW

3.1.51 HAIFSR, Hyp Auxiliary Instruction Fault Status Syndrome Register

 on page 150

HAMAIR0

RW

3.1.52 HAMAIR0, Hyp Auxiliary Memory Attribute Indirection Register 0

 on page 151

HAMAIR1

RW

3.1.53 HAMAIR1, Hyp Auxiliary Memory Attribute Indirection Register 1

 on page 152

HCR

RW

3.1.54 HCR, Hyp Configuration Register

 on page 152

HCR2

RW

3.1.55 HCR2, Hyp Configuration Register 2

 on page 154

HSR

RW

3.1.57 HSR, Hyp Syndrome Register

 on page 156

HTTBR

RW

3.1.58 HTTBR, Hyp Translation Table Base Register

 on page 158

VDFSR

RW

3.1.87 VDFSR, Virtual SError Exception Syndrome Register

 on page 213

VDISR

RW

3.1.88 VDISR, Virtual Deferred Interrupt Status Register

 on page 214

VMPIDR

RW

3.1.89 VMPIDR, Virtualization Multiprocessor ID Register

 on page 217

VPIDR

RW

3.1.90 VPIDR, Virtualization Processor ID Register

 on page 218

VTCR

RW

3.1.91 VTCR, Virtualization Translation Control Register

 on page 218

VTTBR

RW

3.1.92 VTTBR, Virtualization Translation Table Base Register

 on page 220

Table 3-10: Exception and fault handling registers

Name

Type

Description

ADFSR

RW

3.1.7 ADFSR, Auxiliary Data Fault Status Register

 on page 98

AIFSR

RW

3.1.10 AIFSR, Auxiliary Instruction Fault Status Register

 on page 101

DFSR

RW

3.1.28 DFSR, Data Fault Status Register

 on page 131

DISR

RW

3.1.29 DISR, Deferred Interrupt Status Register

 on page 133

HADFSR

RW

3.1.50 HADFSR, Hyp Auxiliary Data Fault Status Syndrome Register

 on page 149

HAIFSR

RW

3.1.51 HAIFSR, Hyp Auxiliary Instruction Fault Status Syndrome Register

 on page 150

HSR

RW

3.1.57 HSR, Hyp Syndrome Register

 on page 156

IFSR

RW

3.1.75 IFSR, Instruction Fault Status Register

 on page 186

VDFSR

RW

3.1.87 VDFSR, Virtual SError Exception Syndrome Register

 on page 213

VDISR

RW

3.1.88 VDISR, Virtual Deferred Interrupt Status Register

 on page 214

Table 3-11: IMPLEMENTATION DEFINED registers

Name

Type Reset

Description

AHTCR

RW -

3.1.8 AHTCR, Auxiliary Hypervisor Translation Control Register

 on page 98

ATTBCR

RW -

3.1.13 ATTBCR, Auxiliary Translation Table Base Control Register

 on page 103

AVTCR

RW -

3.1.14 AVTCR, Auxiliary Virtualized Translation Control Register

 on page 106

CPUACTLR

RW -

3.1.18 CPUACTLR, CPU Auxiliary Control Register

 on page 112

CPUCFR

RO

-

3.1.19 CPUCFR, CPU Configuration Register

 on page 114

ERXPFGCDN RW -

3.1.42 ERXPFGCDN, Selected Error Pseudo Fault Generation Count Down Register

 on

page 141

ERXPFGCTL RW -

3.1.43 ERXPFGCTL, Selected Error Pseudo Fault Generation Control Register

 on page

142

ERXPFGF

RO

-

3.1.44 ERXPFGF, Selected Pseudo Fault Generation Feature Register

 on page 143

CPUECTLR

RW

0x000000002808BC00

3.1.20 CPUECTLR, CPU Extended Control Register

 on page 115

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

93

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

Type Reset

Description

CPUPCR

RW -

3.1.21 CPUPCR, CPU Private Control Register

 on page 119

CPUPMR

RW -

3.1.22 CPUPMR, CPU Private Mask Register

 on page 121

CPUPOR

RW -

3.1.23 CPUPOR, CPU Private Operation Register

 on page 122

CPUPSELR

RW -

3.1.24 CPUPSELR, CPU Private Selection Register

 on page 124

The following table shows the 32-bit wide 

IMPLEMENTATION DEFINED

 Cluster registers. These

registers are RW, and details can be found in 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference

Manual

Table 3-12: Cluster registers

Name

Copro CRn Opc1 CRm Opc2 Width

Description

CLUSTERCFR

cp15

c15 0

c3

0

32-bit

Cluster configuration register.

CLUSTERIDR

cp15

c15 0

c3

1

32-bit

Cluster main revision ID.

CLUSTEREVIDR

cp15

c15 0

c3

2

32-bit

Cluster ECO ID.

CLUSTERACTLR

cp15

c15 0

c3

3

32-bit

Cluster auxiliary control register.

CLUSTERECTLR

cp15

c15 0

c3

4

32-bit

Cluster extended control register.

CLUSTERPWRCTLR

cp15

c15 0

c3

5

32-bit

Cluster power control register.

CLUSTERPWRDN

cp15

c15 0

c3

6

32-bit

Cluster power down register.

CLUSTERPWRSTAT

cp15

c15 0

c3

7

32-bit

Cluster power status register.

CLUSTERTHREADSID

cp15

c15 0

c4

0

32-bit

Cluster thread scheme ID register.

CLUSTERACPSID

cp15

c15 0

c4

1

32-bit

Cluster ACP scheme ID register.

CLUSTERSTASHSID

cp15

c15 0

c4

2

32-bit

Cluster stash scheme ID register.

CLUSTERPARTCR

cp15

c15 0

c4

3

32-bit

Cluster partition control register.

CLUSTERBUSQOS

cp15

c15 0

c4

4

32-bit

Cluster bus QoS control register.

CLUSTERL3HIT

cp15

c15 0

c4

5

32-bit

Cluster L3 hit counter register.

CLUSTERL3MISS

cp15

c15 0

c4

6

32-bit

Cluster L3 miss counter register.

CLUSTERTHREADSIDOVR

cp15

c15 0

c4

7

32-bit

Cluster thread scheme ID override register.

CLUSTERPM*

cp15

c15 0 or 6 c5-c6 0-7

32-bit or 64-bit

Cluster PMU registers.

Table 3-13: Legacy feature registers

Name

Type

Description

FCSEIDR

RO

3.1.46 FCSEIDR, FCSE Process ID Register

 on page 145

In Arm

®

v8‑A, the core does not implement the FCSEIDR, and therefore the register is RO.

Table 3-14: Address registers

Name

Type

Description

PAR

RW

3.1.78 PAR, Physical Address Register

 on page 190

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

94

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.5 ACTLR, Auxiliary Control Register

The ACTLR provides access control for 

IMPLEMENTATION DEFINED

 registers at lower exception levels.

ACTLR is a 32-bit register, and is part of:
• The Other system control registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Bit field descriptions

The core implements the ACTLR(NS) register, but has no defined bits. This register is always 

RES0

.

The following bit field descriptions are for the Secure version of the ACTLR.

Figure 3-1: ACTLR (S) bit assignments

31

7 6 5

1 0

4

2

SMEN

PWREN

ECTLREN
ACTLREN

8

10

11

12

13

ERXPFGEN

RES

0

CLUSTERPMUEN

9

TSIDEN

RES0, [31:13]

RES0

Reserved.

CLUSTERPMUEN, [12]

Performance Management Registers enable. The value is:

0

CLUSTERPM* registers are not write accessible from a lower

Exception level. This is the reset value.

1

CLUSTERPM* registers are write accessible from EL2.

SMEN, [11]

Scheme Management Registers enable. The value is:

0

Registers CLUSTERTHREADSID, CLUSTERACPSID,

CLUSTERSTASHSID, CLUSTERPARTCR, and CLUSTERBUSQOS are

not write accessible from EL2. This is the reset value.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

95

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

1

Registers controlled by the TSIDEN bit, CLUSTERACPSID,

CLUSTERSTASHSID, CLUSTERPARTCR, and CLUSTERBUSQOS are

write accessible from EL2.

TSIDEN, [10]

Thread Scheme ID Register enable. The possible values are:

0

Register CLUSTERTHREADSID is not accessible from EL1 nonsecure.

This is the reset value.

1

Register CLUSTERTHREADSID is accessible from EL1 nonsecure if

they are write accessible from EL2.

RES0, [9:8]

RES0

Reserved.

PWREN, [7]

Power Control Registers enable. The value is:

0

Registers CPUPWRCTLR, CLUSTERPWRCTLR, CLUSTERPWRDN,

CLUSTERPWRSTAT, CLUSTERL3HIT and CLUSTERL3MISS are not

write accessible from a lower Exception level. This is the reset value.

1

Registers CPUPWRCTLR, CLUSTERPWRCTLR, CLUSTERPWRDN,

CLUSTERPWRSTAT, CLUSTERL3HIT and CLUSTERL3MISS are write

accessible from EL2.

RES0, [6]

RES0

Reserved.

ERXPFGEN, [5]

Error Record Registers enable. The value is:

0

ERXPFG* are not write accessible from a lower Exception level. This

is the reset value.

1

ERXPFG* are write accessible from EL2.

RES0, [4:2]

RES0

Reserved.

ECTLREN, [1]

Extended Control Registers enable. The value is:

0

CPUECTLR and CLUSTERECTLR are not write accessible from a

lower Exception level. This is the reset value.

1

CPUECTLR and CLUSTERECTLR are write accessible from EL2.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

96

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

ACTLREN, [0]

Auxiliary Control Registers enable. The value is:

0

CPUACTLR and CLUSTERACTLR are not write accessible from a

lower Exception level. This is the reset value.

1

CPUACTLR and CLUSTERACTLR are write accessible from EL2.

Configurations

AArch32 register ACTLR(NS) is mapped to AArch64 register ACTLR_EL1. See 

3.2.5

ACTLR_EL1, Auxiliary Control Register, EL1

 on page 234.

AArch32 register ACTLR(S) is mapped to AArch64 register ACTLR_EL3. See 

3.2.7

ACTLR_EL3, Auxiliary Control Register, EL3

 on page 238.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.6 ACTLR2, Auxiliary Control Register 2

The ACTLR2 provides extra space to the ACTLR register to hold 

IMPLEMENTATION DEFINED

 trap

functionality for execution at EL1 and EL0.

Bit field descriptions

ACTLR2 is a 32-bit register, and is part of:
• The Other system control registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Figure 3-2: ACTLR2 bit assignments

0

31

RES

0

RES0, [31:0]

RES0

Reserved.

Configurations

AArch32 System register ACTLR2 is architecturally mapped to AArch64 System register

ACTLR_EL1[63:32]. See 

3.2.5 ACTLR_EL1, Auxiliary Control Register, EL1

 on page 234.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

97

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

AArch32 register ACTLR2(S) is architecturally mapped to AArch64 register

ACTLR_EL3[63:32]. See 

3.2.7 ACTLR_EL3, Auxiliary Control Register, EL3

 on page 238.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.7 ADFSR, Auxiliary Data Fault Status Register

The ADFSR provides extra 

IMPLEMENTATION DEFINED

 fault status information for Data Abort

exceptions taken to EL1 modes. In the Cortex

®

-A55 core, no additional information is provided for

such exceptions, so this register is not used.

Bit field descriptions

ADFSR is a 32-bit register, and is part of:
• The Exception and fault handling registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Figure 3-3: ADFSR bit assignments

0

31

RES

0

[31:0]

 

Reserved, 

RES0

.

Configurations

AArch32 System register ADFSR is architecturally mapped to AArch64 System register

AFSR0_EL1. See 

3.2.8 AFSR0_EL1, Auxiliary Fault Status Register 0, EL1

 on page 240.

AArch32 register ADFSR(S) is architecturally mapped to AArch64 register AFSR0_EL3. See

3.2.10 AFSR0_EL3, Auxiliary Fault Status Register 0, EL3

 on page 242.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

98

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.8 AHTCR, Auxiliary Hypervisor Translation Control Register

The AHTCR determines the values of the 

Page Based Hardware Attribute

 (PBHA) on page table

walks memory access in hypervisor translation regime.

Bit field descriptions

AHTCR is a 32-bit register.

Figure 3-4: AHTCR bit assignments

RES

0

31

0

1

2

7

8

9

10

HWVAL60

HWVAL59

HWEN59
HWEN60

[31:10]

 

RES0

.

HWVAL60, [9]

 

Indicates the value of PBHA[1] page table walks memory access if

HWEN60 is set.

HWVAL59, [8]

 

Indicates the value of PBHA[1] page table walks memory access if

HWEN59 is set.

[7:2]

 

RES0

.

HWEN60, [1]

 

Enables PBHA[1] page table walks memory access. If this bit is clear,

PBHA[1] on page table walks is 0.

HWEN59, [0]

 

Enables PBHA[0] page table walks memory access. If this bit is clear,

PBHA[0] on page table walks is 0.

Configurations

AArch32 register AHTCR is mapped to AArch64 register TCR_EL2.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

99

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Usage constraints

Accessing the AHTCR

This register can be read using MRC with the following syntax:

MRC <syntax>

This register can be written using MCR with the following syntax:

MCR <syntax>

<Syntax>

Coproc

opc1

CRn

CRm

opc2

p15, 4, <Rt> , c15, c7, 0

1111

100

1111

0111

000

Accessibility

AHTCR is accessible as follows:

Control

Accessibility

<syntax>

E2H

TGE

NS

EL0

EL1

EL2

EL3

p15, 4, <Rt>, c15, c7, 0 x

x

0

-

-

n/a

RW

p15, 4, <Rt>, c15, c7, 0 x

0

1

-

-

RW

RW

p15, 4, <Rt>, c15, c7, 0 x

1

1

-

n/a

RW

RW

Traps and enables

The traps and enables that apply to this register are the same traps and enables that apply to

HTCR.

3.1.9 AIDR, Auxiliary ID Register

The AIDR provides 

IMPLEMENTATION DEFINED

 identification information. This register is not used in

the Cortex

®

-A55 core.

Bit field descriptions

AIDR is a 32-bit register, and is part of:
• The Identification registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

100

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-5: AIDR bit assignments

0

31

RES

0

RES0, [31:0]

 

Reserved, 

RES0

.

Configurations

There is one instance of this register that is used in both Secure and Non-secure states.

AArch32 System register AIDR is architecturally mapped to AArch64 System register

AIDR_EL1. See 

3.2.14 AIDR_EL1, Auxiliary ID Register, EL1

 on page 245.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.10 AIFSR, Auxiliary Instruction Fault Status Register

The AIFSR provides extra 

IMPLEMENTATION DEFINED

 fault status information for Prefetch Abort

exceptions that are taken to EL1 modes. This register is not used in the Cortex

®

-A55 core.

Bit field descriptions

AIFSR is a 32-bit register, and is part of:
• The Exception and fault handling registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Figure 3-6: AIFSR bit assignments

0

31

RES

0

RES0, [31:0]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

101

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Configurations

AArch32 System register AIFSR is architecturally mapped to AArch64 System register

AFSR1_EL1. See 

3.2.11 AFSR1_EL1, Auxiliary Fault Status Register 1, EL1

 on page 242.

AArch32 System register AIFSR(S) is architecturally mapped to AArch64 System register

AFSR1_EL3. See 

3.2.13 AFSR1_EL3, Auxiliary Fault Status Register 1, EL3

 on page 244.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.11 AMAIR0, Auxiliary Memory Attribute Indirection Register 0

When using the Long-descriptor format translation tables for stage 1 translations, AMAIR0

provides 

IMPLEMENTATION DEFINED

 memory attributes for the memory regions specified by MAIR0.

This register is not used in the Cortex

®

-A55 core.

Bit field descriptions

AMAIR0 is a 32-bit register, and is part of:
• The Virtual memory control registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Figure 3-7: AMAIR0 bit assignments

0

31

RES

0

RES0, [31:0]

RES0

Reserved.

Configurations

AArch32 System register AMAIR0 is architecturally mapped to AArch64 System register

AMAIR_EL1[31:0]. See 

3.2.15 AMAIR_EL1, Auxiliary Memory Attribute Indirection Register,

EL1

 on page 246.

AArch32 System register AMAIR0(S) is architecturally mapped to AArch64 System register

AMAIR_EL3[31:0]. See 

3.2.17 AMAIR_EL3, Auxiliary Memory Attribute Indirection Register,

EL3

 on page 247.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

102

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.12 AMAIR1, Auxiliary Memory Attribute Indirection Register 1

When using the Long-descriptor format translation tables for stage 1 translations, AMAIR1

provides 

IMPLEMENTATION DEFINED

 memory attributes for the memory regions specified by MAIR1.

This register is not used in the Cortex

®

-A55 core.

Bit field descriptions

AMAIR1 is a 32-bit register, and is part of:
• The Virtual memory control registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Figure 3-8: AMAIR1 bit assignments

0

31

RES

0

RES0, [31:0]

RES0

Reserved.

Configurations

AArch32 System register AMAIR1 is architecturally mapped to AArch64 System register

AMAIR_EL1[63:32]. See 

3.2.15 AMAIR_EL1, Auxiliary Memory Attribute Indirection Register,

EL1

 on page 246.

AArch32 System register AMAIR1(S) is architecturally mapped to AArch64 System register

AMAIR_EL3[63:32]. See 

3.2.17 AMAIR_EL3, Auxiliary Memory Attribute Indirection Register,

EL3

 on page 247.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.13 ATTBCR, Auxiliary Translation Table Base Control Register

The ATTBCR determines the values of PBHA on page table walks memory access in EL1

translation regime.

Bit field descriptions

ATTBCR is a 32-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

103

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-9: ATTBCR bit assignments

RES

0

31

14

0

1

2

3

4

5

6

7

8

9

10

11

12

13

HWVAL160
HWVAL159
HWVAL060
HWVAL059

HWEN059
HWEN060
HWEN159
HWEN160

[31:14]

 

RES0

.

HWVAL160, [13]

 

Indicates the value of PBHA[1] on page table walks memory access

targeting the base address defined by TTB1 if HWEN160 is set.

HWVAL159, [12]

 

Indicates the value of PBHA[0] on page table walks memory access

targeting the base address defined by TTB1 if HWEN159 is set.

[11:10]

 

RES0

.

HWVAL060, [9]

 

Indicates the value of PBHA[1] page table walks memory access

targeting the base address defined by TTB0 if HWEN060 is set.

HWVAL059, [8]

 

Indicates the value of PBHA[1] page table walks memory access

targeting the base address defined by TTB0 if HWEN059 is set.

[7:6]

 

RES0

.

HWEN160, [5]

 

Enables PBHA[1] page table walks memory access targeting the base

address defined by TTB1. If this bit is clear, PBHA[1] on page table

walks is 0.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

104

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

HWEN159, [4]

 

Enables PBHA[0] page table walks memory access targeting the base

address defined by TTB1. If this bit is clear, PBHA[0] on page table

walks is 0.

[3:2]

 

RES0

.

HWEN060, [1]

 

Enables PBHA[1] page table walks memory access targeting the base

address defined by TTB0. If this bit is clear, PBHA[1] on page table

walks is 0.

HWEN059, [0]

 

Enables PBHA[0] page table walks memory access targeting the base

address defined by TTB0. If this bit is clear, PBHA[0] on page table

walks is 0.

Configurations

AArch32 ATTBCR(NS) is architecturally mapped to AArch64 register ATCR_EL1.

AArch32 ATTBCR(S) is architecturally mapped to AArch64 register ATCR_EL3.

If EL3 is using AArch32, there are separate Secure and Non-secure instances of this register.

On a Warm reset, the Secure instance of ATTBCR resets to 

0x0

.

Usage constraints

Accessing the ATTBCR

This register can be read using MRC with the following syntax:

MRC <syntax>

This register can be written using MCR with the following syntax:

MCR <syntax>

<Syntax>

coproc

opc1

CRn

CRm

ocp2

p15, 0, <Rt>, c15, c7, 0

1111

000

1111

0111

000

Accessibility

If EL3 is implemented and is using AArch32, there are separate instances of this register and

ATTBCR is accessible as follows:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

105

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Control

Accessibility

<syntax>

E2H

TGE

NS

EL0

EL1

EL2

EL3

Instance

p15, 0, <Rt>, c15, c7, 0 x

x

0

-

RW

n/a

RW

SCTLR_S

p15, 0, <Rt>, c15, c7, 0 x

0

1

-

RW

RW

RW

SCTLR_NS

p15, 0, <Rt>, c15, c7, 0 x

1

1

-

n/a

RW

RW

SCTLR_NS

Traps and enables

Rules of trap and enable for this register are the same as TTBCR. See the 

Arm

®

 Architecture

Reference Manual for A-profile architecture

.

3.1.14 AVTCR, Auxiliary Virtualized Translation Control Register

The AVTCR determines the values of PBHA on stage 2 page table walks memory access in EL1

Non-secure translation regime if stage 2 is enabled.

Bit field descriptions

AVTCR is a 32-bit register.

Figure 3-10: AVTCR bit assignments

RES

0

31

0

1

2

7

8

9

10

HWVAL60

HWVAL59

HWEN59
HWEN60

[31:10]

 

RES0

.

HWVAL60, [9]

 

Indicates the value of PBHA[1] page table walks memory access if

HWEN60 is set.

HWVAL59, [8]

 

Indicates the value of PBHA[1] page table walks memory access if

HWEN59 is set.

[7:2]

 

RES0

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

106

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

HWEN60, [1]

 

Enables PBHA[1] page table walks memory access. If this bit is clear,

PBHA[1] on page table walks is 0.

HWEN59, [0]

 

Enables PBHA[0] page table walks memory access. If this bit is clear,

PBHA[0] on page table walks is 0.

Configurations

AArch32 register AVTCR is architecturally mapped to AArch64 register AVTCR_EL2.

Usage constraints

Accessing the AVTCR

This register can be read using MRC with the following syntax:

MRC <syntax>

This register can be written using MCR with the following syntax:

MCR <syntax>

Syntax

coproc

opc1

CRn

CRm

opc2

p15, 4, <Rt>, c15, c7, 1

1111

100

1111

0111

001

Accessibility

AVTCR is accessible as follows:

Control

Accessibility

<syntax>

E2H

TGE

NS

EL0

EL1

EL2

EL3

p15, 4, <Rt>, c15, c7, 1 x

x

0

-

-

n/a

RW

p15, 4, <Rt>, c15, c7, 1 x

0

1

-

-

RW

RW

p15, 4, <Rt>, c15, c7, 1 x

1

1

-

n/a

RW

RW

3.1.15 CCSIDR, Cache Size ID Register

The CCSIDR provides information about the architecture of the currently selected cache.

Bit field descriptions

CCSIDR is a 32-bit register and is part of the Identification registers functional group.

This register is Read Only.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

107

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-11: CCSIDR bit assignments

WB

31

28 27

12

3

0

RA

LineSize

WT

30 29

13

2

WA

NumSets

Associativity

WT, [31]

Indicates whether the selected cache level supports Write-Through:

0

Cache Write-Through is not supported at any level.

For more information about encoding, see 

Table 3-21: CCSIDR

encodings

 on page 109.

WB, [30]

Indicates whether the selected cache level supports Write-Back. Permitted values are:

0

Write-Back is not supported.

1

Write-Back is supported.

For more information about encoding, see 

Table 3-21: CCSIDR

encodings

 on page 109.

RA, [29]

Indicates whether the selected cache level supports read-allocation. Permitted values are:

0

Read-allocation is not supported.

1

Read-allocation is supported.

For more information about encoding, see 

Table 3-21: CCSIDR

encodings

 on page 109.

WA, [28]

Indicates whether the selected cache level supports write-allocation. Permitted values are:

0

Write-allocation is not supported.

1

Write-allocation is supported.

For more information about encoding, see 

Table 3-21: CCSIDR

encodings

 on page 109.

NumSets, [27:13]

(Number of sets in cache) - 1. Therefore, a value of 0 indicates one set in the cache. The

number of sets does not have to be a power of 2.

For more information about encoding, see 

Table 3-21: CCSIDR encodings

 on page 109.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

108

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Associativity, [12:3]

(Associativity of cache) - 1. Therefore, a value of 0 indicates an associativity of 1. The

associativity does not have to be a power of 2.

For more information about encoding, see 

Table 3-21: CCSIDR encodings

 on page 109.

LineSize, [2:0]

(Log

2

(Number of bytes in cache line)) - 4. For example:

Indicates the (log

2

 (number of words in cache line)) - 2:

 

For a line length of 16 bytes: Log

2

(16) = 4, LineSize entry = 0. This is

the minimum line length.

 

For a line length of 32 bytes: Log

2

(32) = 5, LineSize entry = 1.

For more information about encoding, see 

Table 3-21: CCSIDR encodings

 on page 109.

Configurations

CCSIDR is architecturally mapped to AArch64 register CCSIDR_EL1. See 

3.2.23

CCSIDR_EL1, Cache Size ID Register, EL1

 on page 257.

There is one copy of this register that is used in both Secure and Non-secure states.

The implementation includes one CCSIDR for each cache that it can access. CSSELR selects

which Cache Size ID Register is accessible.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

CCSIDR encodings

The following table shows the individual bit field and complete register encodings for the CCSIDR.

The CSSELR determines which CCSIDR to select.

Table 3-21: CCSIDR encodings

CSSELR

Register bit field encoding

Level

InD

Cache

Size

Complete register

encoding

WT

WB

RA

WA

NumSets Associativity LineSize

16KB

7007E01A

003F

003

2

32KB

700FE01A

007F

003

2

0b000 0b0

L1 Data cache

64KB

701FE01A

0

1

1

1

00FF

003

2

16KB

2007E01A

003F

003

2

32KB

200FE01A

007F

003

2

0b000 0b1

L1 Instruction

cache

64KB

201FE01A

0

0

1

0

00FF

003

2

Not

present

See following Note.

-

-

-

-

-

-

-

64KB

701FE01A

00FF

003

2

0b001 0b0

L2 cache

128KB

703FE01A

0

1

1

1

01FF

003

2

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

109

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

CSSELR

Register bit field encoding

Level

InD

Cache

Size

Complete register

encoding

WT

WB

RA

WA

NumSets Associativity LineSize

256KB

707FE01A

03FF

003

2

0b001 0b1

Reserved

-

-

-

-

-

-

-

-

-

256KB

701FE07A

000F

00F

2

512KB

703FE07A

01FF

00F

2

1MB

707FE07A

03FF

00F

2

2MB

70FFE07A

07FF

00F

2

4MB

71FFE07A

0FFF

00F

2

0b010 0b0

L3 cache

8MB

73FFE07A

0

1

1

1

1FFF

00F

2

0b0101

 -

0b1111

Reserved

-

-

-

-

-

-

-

-

-

If no L2 cache is present then the L3 cache becomes the L2 cache from the

perspective of the core. This means the CCSIDR will return the information for the

L3 cache when the L2 cache is selected with the CSSELR, and will return 

UNKNOWN

information if the L3 cache is selected with the CSSELR.

3.1.16 CLIDR, Cache Level ID Register

The CLIDR identifies the type of cache, or caches, implemented at each level, up to a maximum of

seven levels.

It also identifies the 

Level of Coherency

 (LoC) and 

Level of Unification

 (LoU) for the cache hierarchy.

Bit field descriptions

CLIDR is a 32-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Figure 3-12: CLIDR bit assignments

ICB

Ctype3 Ctype2 Ctype1

31 30 29

27 26

24 23

21 20

9 8

6 5

3 2

0

LoUU

LoC

RES

0

11

12

14

15

17

18

LoUIS

ICB, [31:30]

Inner cache boundary. This field indicates the boundary between the inner and the outer

domain:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

110

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0b10

L2 cache is the highest inner level.

0b11

L3 cache is the highest inner level.

LoUU, [29:27]

Indicates the Level of Unification Uniprocessor for the cache hierarchy:

0b000

No levels of cache need to cleaned or invalidated when cleaning or

invalidating to the Point of Unification.

LoC, [26:24]

Indicates the Level of Coherency for the cache hierarchy:

0b001

L2 and L3 cache are not implemented.

0b010

L2 or L3 cache is not implemented.

0b011

L2 and L3 cache are implemented.

LoUIS, [23:21]

Indicates the 

Level of Unification Inner Shareable

 (LoUIS) for the cache hierarchy.

0b000

No levels of cache need to cleaned or invalidated when cleaning or

invalidating to the Point of Unification.

RES0, [20:9]

No cache at levels L7 down to L4.

RES0

Reserved.

Ctype3, [8:6]

Indicates the type of cache if the cluster implements L3 cache. If present, unified instruction

and data caches at Level-3:

0b000

L2 or L3 cache is not implemented

0b100

L2 and L3 cache are implemented.

If Ctype2 has a value of 

0b000

, the value of Ctype3 must be ignored.

Ctype2, [5:3]

Indicates the type of cache if the core implements L2 cache. If present, unified instruction

and data caches at Level-2:

0b000

L2 and L3 cache are not implemented.

0b100

L2 or L3 cache is implemented as a unified cache.

Ctype1, [2:0]

Indicates the type of cache implemented at L1:

0b011

Separate instruction and data caches at L1.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

111

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Configurations

CLIDR is architecturally mapped to AArch64 register CLIDR_EL1. See 

3.2.24 CLIDR_EL1,

Cache Level ID Register, EL1

 on page 260.

There is one copy of this register that is used in both Secure and Non-secure states.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.17 CPACR, Architectural Feature Access Control Register

The CPACR controls access to floating-point, and Advanced SIMD functionality from EL0, EL1, and

EL3.

Bit field descriptions

CPACR is a 32-bit register, and is part of the Other system control registers functional group.

Figure 3-13: CPACR bit assignments

31

24 23 22 21 20 19

0

cp11 cp10

30

ASEDIS

28

29

27

TRCDIS

RES

0

TRCDIS, [28]

 

This bit is reserved, 

RES0

.

Configurations

CPACR is architecturally mapped to AArch64 register CPACR_EL1. See 

3.2.25 CPACR_EL1,

Architectural Feature Access Control Register, EL1

 on page 261.

There is one copy of this register that is used in both Secure and Non-secure states.

Bits in the NSACR control Non-secure access to the CPACR fields. See the field descriptions

cp10 and cp11.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

112

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.18 CPUACTLR, CPU Auxiliary Control Register

The CPUACTLR provides 

IMPLEMENTATION DEFINED

 configuration and control options for the core.

Bit field descriptions

CPUACTLR is a 64-bit register, and is part of the 

IMPLEMENTATION DEFINED

 registers functional

group.

Figure 3-14: CPUACTLR bit assignments

0

Reserved

63

Reserved, [63:0]

 

Reserved for Arm

®

 internal use.

Configurations

CPUACTLR is:
• Common to the Secure and Non-secure states.
• Mapped to the AArch64 CPUACTLR_EL1 register. See 

3.2.28 CPUACTLR_EL1, CPU

Auxiliary Control Register, EL1

 on page 264.

Usage constraints

Accessing the CPUACTLR

Arm recommends that you write to this register after a powerup reset, before the MMU is

enabled.

Setting many of these bits can cause significantly lower performance on your code.

Therefore, Arm strongly recommends that you do not modify this register unless directed by

Arm.

This register can be read using MRRC with the following syntax:

MRRC <syntax>

This register can be written using MCRR with the following syntax:

MCRR <syntax>

This syntax is encoded with the following settings in the instruction encoding:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

113

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

<syntax>

coproc

opc1

CRm

p15, 0, <Rt>, <Rt2>, c15

1111

0000

1111

Accessibility

This register is accessible in software as follows:

Control

Accessibility

<syntax>

E2H

TGE

NS

EL0

EL1

EL2

EL3

p15, 0, <Rt>, <Rt2>,

c15

x

x

0

-

RW

n/a

RW

p15, 0, <Rt>, <Rt2>,

c15

x

0

1

-

RW

RW

RW

p15, 0, <Rt>, <Rt2>,

c15

x

1

1

-

n/a

RW

RW

'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not

possible.

Traps and enables

For a description of the prioritization of any generated exceptions, see 

Exception priority order

in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for exceptions taken to

AArch32 state, and see 

Synchronous exception prioritization

 for exceptions taken to AArch64

state.

Write access to this register from EL1 or EL2 depends on the value of bit[0] of ACTLR_EL2,

ACTLR_EL3, ACTLR (S), and HACTLR.

3.1.19 CPUCFR, CPU Configuration Register

The CPUCFR provides configuration information for the core.

Bit field descriptions

CPUCFR is a 32-bit register and is part of the Implementation registers functional group.

This register is Read Only.

Figure 3-15: CPUCFR bit assignments

31

0

ECC

1

3 2

SCU

RES

0

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

114

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

RES0, [31:3]

RES0

Reserved.

SCU, [2]

Indicates whether the SCU is present or not. The value is:

0

The SCU is present.

ECC, [1:0]

Indicates whether ECC is present or not. The possible values are:

0

ECC is not present.

1

ECC is present.

Configurations

CPUCFR is architecturally mapped to AArch64 register CPUCFR_EL1. See 

3.2.29

CPUCFR_EL1, CPU Configuration Register, EL1

 on page 266.

Usage constraints

Accessing the CPUCFR

This register can be read using MRC with the following syntax:

MRC <syntax>

This syntax is encoded with the following settings in the instruction encoding:

<syntax>

coproc

opc1

CRn

CRm

opc2

p15, 0, <Rt>, c15, c0, 0

1111

000

1111

0000

000

Accessibility

This register is accessible in software as follows:

Control

Accessibility

<syntax>

E2H

TGE

NS

EL0

EL1

EL2

EL3

p15, 0, <Rt>, c15, c0, 0 x

x

0

-

RO

n/a

RO

p15, 0, <Rt>, c15, c0, 0 x

0

1

-

RO

RO

RO

p15, 0, <Rt>, c15, c0, 0 x

1

1

-

n/a

RO

RO

'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not

possible.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

115

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.20 CPUECTLR, CPU Extended Control Register

The CPUECTLR provides extra 

IMPLEMENTATION DEFINED

 configuration and control options for the

core.

Bit field descriptions

CPUECTLR is a 64-bit register, and is part of the 64-bit registers functional group.

Figure 3-16: CPUECTLR bit assignments

RES

0

EXTLLC

40 39 38 37 36

31

0

25

26

24

16 15

13 12

10 9

1

27

28

29

30

63

L3WSCTL
L2WSCTL
L1WSCTL

ATOM

L2FLUSH

L3PCTL
L1PCTL

RES0, [63:40]

RES0

Reserved.

ATOM, [39:38]

00

Atomic instructions are performed near if they hit in the cache in

a unique state, or far if they miss or are shared. For more details,

see 

2.6.4.1 Memory system implementation

 on page 60. This is the

default.

01

Force all cacheable atomic instructions to be executed near, in the L1

cache.

10

Force most cacheable atomic instructions to be executed far, in the

L3 cache or beyond.

11

Force cacheable load atomics, including SWP and CAS, to be

executed near, in the L1 cache. Store atomics are performed near

if they hit in the cache in a unique state, or far if they miss or are

shared.

L2FLUSH, [37]

0

L2 cache flushes, for example during a core powerdown sequence,

cause clean lines to be allocated into the L3 cache rather than

discarding them. This can improve performance if it is known that the

data is likely to be used soon by another core.

1

Clean lines do not provide data when being evicted during a cache

flush and do not allocate to the L3 cache. If the line is being evicted

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

116

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

from the cluster, the DSU will generate evict transactions to update

the interconnect snoop filter depending on the DSU programming.

RES0, [36:31]

RES0

Reserved.

L3WSCTL, [30:29]

Write streaming no-L3-allocate threshold. The possible values are:

00

128th consecutive streaming cache line does not allocate in the L1,

L2, or L3 cache.

01

1024th consecutive streaming cache line does not allocate in the L1,

L2, or L3 cache. This is the reset value.

10

4096th consecutive streaming cache line does not allocate in the L1,

L2, or L3 cache.

11

Disables streaming. All write-allocate lines allocate in the L1, L2, or

L3 cache.

L2WSCTL, [28:27]

Write streaming no-L2-allocate threshold. The possible values are:

00

16th consecutive streaming cache line does not allocate in the L1 or

L2 cache.

01

128th consecutive streaming cache line does not allocate in the L1

or L2 cache. This is the reset value.

10

512th consecutive streaming cache line does not allocate in the L1

or L2 cache.

11

Disables streaming. All write-allocate lines allocate in the L1 or L2

cache.

L1WSCTL, [26:25]

Write streaming no-L1-allocate threshold. The possible values are:

00

4th consecutive streaming cache line does not allocate in the L1

cache. This is the reset value.

01

64th consecutive streaming cache line does not allocate in the L1

cache.

10

128th consecutive streaming cache line does not allocate in the L1

11

Disables streaming. All write-allocate lines allocate in the L1 cache.

RES0, [24:16]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

117

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

L1PCTL, [15:13]

L1 Data prefetch control. The value of the L1PCTL field determines the maximum number

of outstanding data prefetches allowed in the L1 memory system (not counting the data

prefetches generated by software load/

PLD

 instructions).

000

Prefetch disabled.

001

1 outstanding prefetch allowed.

010

2 outstanding prefetches allowed.

011

3 outstanding prefetches allowed.

100

4 outstanding prefetches allowed.

101

5 outstanding prefetches allowed. This is the reset value.

110

6 outstanding prefetches allowed.

111

7 outstanding prefetches allowed.

L3PCTL, [12:10]

L3 Data prefetch control. The value of the L3PCTL field determines the approximate distance

between the L1 prefetcher and requests sent to the L3 memory system. Increasing this

distance may improve performance on systems with higher latency to main memory, but

increasing it too far can reduce performance.

The L3 memory system may have more outstanding access to the system

than this number.

000

Fetch 16 lines ahead.

001

Fetch 32 lines ahead.

010

Reserved.

011

Reserved.

100

Disable L3 prefetching.

101

Fetch 2 lines ahead.

110

Fetch 4 lines ahead.

111

Fetch 8 lines ahead. This is the reset value.

RES0, [9:1]

RES0

Reserved.

EXTLLC, [0]

0

Indicates that the L3 cache is the external Last-level cache in the

system. This is the reset value.

1

Indicates that an external Last-level cache is present in the system,

and that the DataSource field on the requester CHI interface

indicates when data is returned from the LLC. This is used to control

how the LL_CACHE* PMU events count.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

118

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Configurations

The CPUECTLR is mapped to the AArch64 CPUECTLR_EL1 register. See 

3.2.30

CPUECTLR_EL1, CPU Extended Control Register, EL1

 on page 268.

Usage constraints

Accessing the CPUECTLR

The CPUECTLR can be written dynamically.

This register can be read using MRRC with the following syntax:

MRRC <syntax>

This register can be written using MRRC with the following syntax:

MCRR <syntax>

This syntax is encoded with the following settings in the instruction encoding:

<syntax>

coproc

opc1

CRm

p15, 4, <Rt>, <Rt2>, c15

1111

0100

1111

Accessibility

This register is accessible in software as follows:

Control

Accessibility

<syntax>

E2H

TGE

NS

EL0

EL1

EL2

EL3

p15, 1, <Rt>, <Rt2>,

c15

x

x

0

-

RW

n/a

RW

p15, 1, <Rt>, <Rt2>,

c15

x

0

1

-

RW

RW

RW

p15, 1, <Rt>, <Rt2>,

c15

x

1

1

-

n/a

RW

RW

'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not

possible.

Traps and enables

For a description of the prioritization of any generated exceptions, see 

Exception priority order

in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for exceptions taken to

AArch32 state, and see 

Synchronous exception prioritization

 for exceptions taken to AArch64

state.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

119

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.21 CPUPCR, CPU Private Control Register

The CPUPCR provides 

IMPLEMENTATION DEFINED

 configuration and control options for the core.

Bit field descriptions

CPUPCR is a 64-bit register, and is part of the 

IMPLEMENTATION DEFINED

 registers functional group.

Figure 3-17: CPUPCR bit assignments

0

Reserved

63

Reserved, [63:0]

 

Reserved for Arm internal use.

Configurations

CPUPCR is:
• Only accessible in Secure state.
• Mapped to the AArch64 CPUPCR_EL3 register. See 

3.2.31 CPUPCR_EL3, CPU Private

Control Register, EL3

 on page 271.

Usage constraints

Accessing the CPUPCR

Arm recommends that you write to this register after a powerup reset, before the MMU is

enabled.

Writing to this register might cause 

UNPREDICTABLE

 behaviors. Therefore, Arm strongly

recommends that you do not modify this register unless directed by Arm.

This register can be read using MRRC with the following syntax:

MRRC <syntax>

This register can be written using MCRR with the following syntax:

MCRR <syntax>

This syntax is encoded with the following settings in the instruction encoding:

<syntax>

coproc

opc1

CRm

p15, 8, <Rt>, <Rt2>, c15

1111

1000

1111

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

120

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Accessibility

This register is accessible in software as follows:

Control

Accessibility

<syntax>

E2H

TGE

NS

EL0

EL1

EL2

EL3

p15, 8, <Rt>, <Rt2>,

c15

x

x

0

-

-

n/a

RW

p15, 8, <Rt>, <Rt2>,

c15

x

0

1

-

-

-

RW

p15, 8, <Rt>, <Rt2>,

c15

x

1

1

-

n/a

-

RW

'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not

possible.

Traps and enables

For a description of the prioritization of any generated exceptions, see 

Exception priority order

in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for exceptions taken to

AArch32 state, and see 

Synchronous exception prioritization

 for exceptions taken to AArch64

state.

3.1.22 CPUPMR, CPU Private Mask Register

The CPUPMR provides 

IMPLEMENTATION DEFINED

 configuration and control options for the core.

Bit field descriptions

CPUPMR is a 64-bit register, and is part of the 

IMPLEMENTATION DEFINED

 registers functional group.

Figure 3-18: CPUPMR bit assignments

0

Reserved

63

Reserved, [63:0]

 

Reserved for Arm internal use.

Configurations

CPUPMR is:
• Only accessible in Secure state.
• Mapped to the AArch64 CPUPMR_EL3 register. See 

3.2.32 CPUPMR_EL3, CPU Private

Mask Register, EL3

 on page 273.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

121

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Usage constraints

Accessing the CPUPOR

Arm recommends that you write to this register after a powerup reset, before the MMU is

enabled.

Writing to this register might cause 

UNPREDICTABLE

 behaviors. Therefore, Arm strongly

recommends that you do not modify this register unless directed by Arm.

This register can be read using MRRC with the following syntax:

MRRC <syntax>

This register can be written using MCRR with the following syntax:

MCRR <syntax>

This syntax is encoded with the following settings in the instruction encoding:

<syntax>

coproc

opc1

CRm

p15, 10, <Rt>, <Rt2>, c15

1111

1010

1111

Accessibility

This register is accessible in software as follows:

Control

Accessibility

<syntax>

E2H

TGE

NS

EL0

EL1

EL2

EL3

p15, 10, <Rt>, <Rt2>,

c15

x

x

0

-

-

n/a

RW

p15, 10, <Rt>, <Rt2>,

c15

x

0

1

-

-

-

RW

p15, 10, <Rt>, <Rt2>,

c15

x

1

1

-

n/a

-

RW

'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not

possible.

Traps and enables

For a description of the prioritization of any generated exceptions, see 

Exception priority order

in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for exceptions taken to

AArch32 state, and see 

Synchronous exception prioritization

 for exceptions taken to AArch64

state.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

122

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.23 CPUPOR, CPU Private Operation Register

The CPUPOR provides 

IMPLEMENTATION DEFINED

 configuration and control options for the core.

Bit field descriptions

CPUPOR is a 64-bit register, and is part of the 

IMPLEMENTATION DEFINED

 registers functional group.

Figure 3-19: CPUPOR bit assignments

0

Reserved

63

Reserved, [63:0]

 

Reserved for Arm internal use.

Configurations

CPUPOR is:
• Only accessible in Secure state.
• Mapped to the AArch64 CPUPOR_EL3 register. See 

3.2.33 CPUPOR_EL3, CPU Private

Operation Register, EL3

 on page 274.

Usage constraints

Accessing the CPUPOR

Arm recommends that you write to this register after a powerup reset, before the MMU is

enabled.

Writing to this register might cause 

UNPREDICTABLE

 behaviors. Therefore, Arm strongly

recommends that you do not modify this register unless directed by Arm.

This register can be read using MRRC with the following syntax:

MRCC <syntax>

This register can be written using MCRR with the following syntax:

MCRR <syntax>

This syntax is encoded with the following settings in the instruction encoding:

<syntax>

coproc

opc1

CRm

p15, 9, <Rt>, <Rt2>, c15

1111

1001

1111

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

123

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Accessibility

This register is accessible in software as follows:

Control

Accessibility

<syntax>

E2H TGE NS EL0 EL1 EL2 EL3

p15, 9, <Rt>, <Rt2>, c15

x

x

0

-

-

n/a RW

p15, 9, <Rt>, <Rt2>, c15

x

0

1

-

-

-

RW

p15, 9, <Rt>, <Rt2>, c15

x

1

1

-

n/a -

RW

'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not

possible.

Traps and enables

For a description of the prioritization of any generated exceptions, see 

Exception priority order

in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for exceptions taken to

AArch32 state, and see 

Synchronous exception prioritization

 for exceptions taken to AArch64

state.

3.1.24 CPUPSELR, CPU Private Selection Register

The CPUPSELR provides 

IMPLEMENTATION DEFINED

 configuration and control options for the core.

Bit field descriptions

CPUPSELR is a 32-bit register, and is part of the 

IMPLEMENTATION DEFINED

 registers functional

group.

Figure 3-20: CPUPSELR bit assignments

0

Reserved

31

Reserved, [31:0]

 

Reserved for Arm internal use.

Configurations

CPUPSELR is:
• Only accessible in Secure state.
• Mapped to the AArch64 CPUPSELR_EL3 register. See 

3.2.34 CPUPSELR_EL3, CPU

Private Selection Register, EL3

 on page 276.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

124

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Usage constraints

Accessing the CPUPSELR

Arm recommends that you write to this register after a powerup reset, before the MMU is

enabled.

Writing to this register might cause 

UNPREDICTABLE

 behaviors. Therefore, Arm strongly

recommends that you do not modify this register unless directed by Arm.

This register can be read using MRC with the following syntax:

MRC <syntax>

This register can be written using MCR with the following syntax:

MCR <syntax>

This syntax is encoded with the following settings in the instruction encoding:

<syntax>

coproc

opc1

CRn

CRm

Opc2

p15, 6, <Rt>, c15, c8, 0

1111

110

1111

1000

000

Accessibility

This register is accessible in software as follows:

Control

Accessibility

<syntax>

E2H

TGE

NS

EL0

EL1

EL2

EL3

p15, 6, <Rt>, c15, c8, 0

x

x

0

-

-

n/a

RW

p15, 6, <Rt>, c15, c8, 0

x

0

1

-

-

-

RW

p15, 6, <Rt>, c15, c8, 0

x

1

1

-

n/a

-

RW

'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not

possible.

Traps and enables

For a description of the prioritization of any generated exceptions, see 

Exception priority order

in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for exceptions taken to

AArch32 state, and see 

Synchronous exception prioritization

 for exceptions taken to AArch64

state.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

125

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.25 CPUPWRCTLR, CPU Power Control Register

The CPUPWRCTLR is a configuration register that gives indications to the external power

controller.

Bit field descriptions

CPUPWRCTLR is a 32-bit register, and is part of the Implementation registers functional group.

Figure 3-21: CPUPWRCTLR bit assignments

31

7

13 12

6

10 9

0

CORE_PWRDN_EN

4

WFI_RET_CTRL

WFE_RET_CTRL

SIMD_RET_CTRL

3

1

RES

0

RES0, [31:13]

RES0

Reserved.

SIMD_RET_CTRL, [12:10]

Advanced SIMD and floating-point retention control:

0b000

Disable the retention circuit. This is the default value, see 

Table 3-85:

CPUPWRCTLR Retention Control Field

 on page 279 for more

retention control options.

WFE_RET_CTRL, [9:7]

CPU WFE retention control:

0b000

Disable the retention circuit. This is the default value, see 

Table 3-36:

CPUPWRCTLR Retention Control Field

 on page 127 for more

retention control options.

WFI_RET_CTRL, [6:4]

CPU WFI retention control:

0b000

Disable the retention circuit. This is the default value, see 

Table 3-36:

CPUPWRCTLR Retention Control Field

 on page 127 for more

retention control options.

RES0, [3:1]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

126

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

CORE_PWRDN_EN, [0]

Indicates to the power controller if the CPU wants to power down when it enters WFI state.

0b0

No power down requested.

0b1

A power down is requested.

Table 3-36: CPUPWRCTLR Retention Control Field

Encoding

Note

Minimum Delay before retention

50MHz – 10MHz

000

Disable the retention circuit.

Default Condition.

001

2 Architectural Timer ticks are required before retention entry.

40ns – 200ns

010

8 Architectural Timer ticks are required before retention entry.

160ns – 800ns

011

32 Architectural Timer ticks are required before retention entry.

640ns – 3,200ns

100

64 Architectural Timer ticks are required before retention entry.

1,280ns – 6,400ns

101

128 Architectural Timer ticks are required before retention entry.

2,560ns – 12,800ns

110

256 Architectural Timer ticks are required before retention entry.

5,120ns – 25,600ns

111

512 Architectural Timer ticks are required before retention entry.

10,240ns – 51,200ns

Configurations

CPUPWRCTLR is architecturally mapped to AArch64 register CPUPWRCTLR_EL1. See

3.2.35 CPUPWRCTLR_EL1, Power Control Register, EL1

 on page 277.

Usage constraints

Accessing the CPUPWRCTLR

This register can be read using MRC with the following syntax:

MRC <syntax>

This register can be written using MCR with the following syntax:

MCR <syntax>

This syntax is encoded with the following settings in the instruction encoding:

<syntax>

coproc

opc1

CRn

CRm

opc2

p15, 0, <Rt>, c15, c2, 7

1111

000

1111

0010

111

Accessibility

This register is accessible in software as follows:

Control

Accessibility

<syntax>

E2H

TGE

NS

EL0

EL1

EL2

EL3

p15, 0, <Rt>, c15, c2, 7 x

x

0

-

RW

n/a

RW

p15, 0, <Rt>, c15, c2, 7 x

0

1

-

RW

RW

RW

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

127

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Control

Accessibility

<syntax>

E2H

TGE

NS

EL0

EL1

EL2

EL3

p15, 0, <Rt>, c15, c2, 7 x

1

1

-

n/a

RW

RW

'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not

possible.

Traps and enables

For a description of the prioritization of any generated exceptions, see 

Exception priority order

in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for exceptions taken to

AArch32 state, and see 

Synchronous exception prioritization

 for exceptions taken to AArch64

state.

Write access to this register from EL1 or EL2 depends on the value of bit[7] of ACTLR_EL2,

ACTLR_EL3, ACTLR (S), and HACTLR.

3.1.26 CSSELR, Cache Size Selection Register

The CSSELR selects the current CCSIDR by specifying:

• The required cache level.
• The cache type, either instruction or data cache.

For details of the CCSIDR, see 

3.1.15 CCSIDR, Cache Size ID Register

 on page 107.

Bit field descriptions

CSSELR is a 32-bit register, and is part of the Identification registers functional group.

Figure 3-22: CSSELR bit assignments

InD

31

4 3

1 0

Level

RES

0

RES0, [31:4]

RES0

Reserved.

Level, [3:1]

Cache level of required cache:

0b000

L1.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

128

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0b001

L2.

Only if L2 is present, or if no L2 present then L3 is present.

0b010

L3. Only if L3 exists.

The combination of Level=

0b001

 and InD=

0b1

 is reserved.

The combinations of Level and InD for 

0b0100

 to 

0b1111

 are reserved.

InD, [0]

Instruction not Data bit:

0b0

Data or unified cache.

0b1

Instruction cache.

The combination of Level=

0b001

 or Level=

0b010

 and InD=

0b1

 is reserved.

The combinations of Level and InD for 

0b0100

 to 

0b1111

 are reserved.

Configurations

CSSELR (NS) is architecturally mapped to AArch64 register CSSELR_EL1. See 

3.2.36

CSSELR_EL1, Cache Size Selection Register, EL1

 on page 280.

If a cache level is missing but CSSELR selects this level, then a CCSIDR read returns an

UNKNOWN

 value.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.27 CTR, Cache Type Register

The CTR provides information about the architecture of the caches.

Bit field descriptions

CTR is a 32-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

129

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-23: CTR bit assignments

IminLine

31 30

28 27

24 23

20 19

16 15 14 13

4 3

0

CWG

ERG

DminLine L1Ip

res0

res1

RES1, [31]

RES1

Reserved.

RES0, [30:28]

RES0

Reserved.

CWG, [27:24]

Cache Write-Back granule. Log

2

 of the number of words of the maximum size of memory

that can be overwritten as a result of the eviction of a cache entry that has had a memory

location in it modified:

0b0100

Cache Write-Back granule size is 16 words.

ERG, [23:20]

Exclusives Reservation Granule. Log

2

 of the number of words of the maximum size of the

reservation granule that has been implemented for the Load-Exclusive and Store-Exclusive

instructions:

0b0100

Exclusive reservation granule size is 16 words.

DminLine, [19:16]

Log

2

 of the number of words in the smallest cache line of all the data and unified caches that

the core controls:

0b0100

Smallest data cache line size is 16 words.

L1Ip, [15:14]

Instruction cache policy. Indicates the indexing and tagging policy for the L1 Instruction

cache:

0b10

Virtually Indexed Physically Tagged

 (VIPT).

RES0, [13:4]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

130

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

IminLine, [3:0]

Log

2

 of the number of words in the smallest cache line of all the instruction caches that the

core controls.

0b0100

Smallest instruction cache line size is 16 words.

Configurations

CTR is architecturally mapped to AArch64 register CTR_EL0. See 

3.2.37 CTR_EL0, Cache

Type Register, EL0

 on page 282.

There is one copy of this register that is used in both Secure and Non-secure states.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.28 DFSR, Data Fault Status Register

The DFSR holds status information about the last data fault.

Bit field descriptions

DFSR is a 32-bit register, and is part of the Exception and fault handling registers functional group.

There are two formats for this register. The current translation table format determines which

format of the register is used.

3.1.28.1 DFSR with Short-descriptor translation table format

 on page 131.

3.1.28.2 DFSR with Long-descriptor translation table format

 on page 132.

Configurations

DFSR (NS) is architecturally mapped to AArch64 register ESR_EL1. See 

3.2.51 ESR_EL1,

Exception Syndrome Register, EL1

 on page 293.

DFSR (S) is architecturally mapped to AArch64 register ESR_EL3. See 

3.2.53 ESR_EL3,

Exception Syndrome Register, EL3

 on page 296.

If EL3 is using AArch32, there are separate Secure and Non-secure instances of this register.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.28.1 DFSR with Short-descriptor translation table format

DFSR has a specific format when using the Short-descriptor translation table format.

The following figure shows the DFSR bit assignments when using the Short-descriptor translation

table format.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

131

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

When TTBCR.EAE==0:

Figure 3-24: DFSR bit assignments for Short-descriptor translation table format

31

14 13 12 11 10 9 8 7

4 3

0

CM

WnR

FS[4]

LPAE

Domain

FS[3:0]

RES

 

0

FnV

17 16 15

AET

AET, [15:14]

Asynchronous Error Type. Describes the state of the PE after taking an asynchronous Data

Abort exception. The value is:

0b01

Uncorrected error, Unrecoverable error

 (UEU).

ExT, [12]

RES0

Reserved. This bit is unused.

3.1.28.2 DFSR with Long-descriptor translation table format

DFSR has a specific format when using the Long-descriptor translation table format.

The following figure shows the DFSR bit assignments when using the Long-descriptor translation

table format.

When TTBCR.EAE==0:

Figure 3-25: DFSR bit assignments for Long-descriptor translation table format

31

14 13 12 11 10 9 8

5

0

Status

6

RES

0

F

N

V

17 16 15

CM

WnR

LPAE

AET

AET, [15:14]

Asynchronous Error Type. Describes the state of the PE after taking an asynchronous Data

Abort exception. The value is:

0b01

Uncorrected error, Unrecoverable error

 (UEU).

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

132

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

ExT, [12]

RES0

Reserved. This bit is unused.

3.1.29 DISR, Deferred Interrupt Status Register

DISR records that an SError interrupt has been consumed by an 

ESB

 instruction.

Bit field descriptions

DISR is a 32-bit register, and is part of the RAS registers group.

There are three formats for this register. The current translation table format determines which

format of the register is used.
• When written at EL1 using Short-descriptor format. See 

3.1.29.1 DISR with Short-descriptor

translation table format

 on page 133.

• When written at EL1 using Long-descriptor format. See 

3.1.29.2 DISR with Long-descriptor

translation table format

 on page 135.

• When written at EL2. See 

3.1.29.3 DISR at EL2

 on page 136.

Configurations

AArch32 register DISR is architecturally mapped to AArch64 register DISR_EL1. See 

3.2.39

DISR_EL1, Deferred Interrupt Status Register, EL1

 on page 284.

There is one instance of DISR that is used in both Secure and Non-secure states.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.29.1 DISR with Short-descriptor translation table format

DISR has a specific format when written at EL1 using the Short-descriptor translation table format.

The following figure shows the DISR bit assignments when using the Short-descriptor translation

table format.

When TTBCR.EAE==0:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

133

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-26: DISR bit assignments for Short-descriptor translation table format

31

14 13 12 11 10 9 8 7

4 3

0

ExT

FS[4]

FS[3:0]

LPAE

15

16

AET

RES

0

30

A

A, [31]

Set to 1 when ESB defers an asynchronous SError interrupt.

RES0, [30:16]

RES0

Reserved.

AET, [15:14]

Asynchronous Error Type. Describes the state of the PE after taking an asynchronous Data

Abort exception. The value is:

0b01

Uncorrected error, Unrecoverable error

 (UEU).

RES0, [13]

RES0

Reserved.

Ext, [12]

External Abort Type. This bit is defined as 

RES0

.

RES0, [11]

RES0

Reserved.

FS[4], [10]

Fault Status Code. See the description of DFSR.FS in the 

Arm

®

 Architecture Reference Manual

for A-profile architecture

 for an SError interrupt.

LPAE, [9]

On taking a Data Abort exception, this bit is set as follows:

0

Using the Short-descriptor translation table formats.

Hardware does not interpret this bit to determine the behavior of the memory system, and

therefore software can set this bit to 0 or 1 without affecting operation.

RES0, [8:4]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

134

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

FS[3:0], [3:0]

Fault Status bits. This field indicates the type of exception generated. See the description

of DFSR.FS in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for an SError

interrupt.

3.1.29.2 DISR with Long-descriptor translation table format

DISR has a specific format when written at EL1 using the Long-descriptor translation table format.

The following figure shows the DISR bit assignments when using the Long-descriptor translation

table format.

When TTBCR.EAE==1:

Figure 3-27: DISR bit assignments for Long-descriptor translation table format

31

14 13 12 11 10 9 8

6 5

0

ExT

STATUS

LPAE

15

16

AET

RES

0

30

A

A, [31]

Set to 1 when ESB defers an asynchronous SError interrupt.

RES0, [30:16]

RES0

Reserved.

AET, [15:14]

Asynchronous Error Type. Describes the state of the core after taking an asynchronous Data

Abort exception. The value is:

0b01

Uncorrected error, Unrecoverable error

 (UEU).

RES0, [13]

RES0

Reserved.

Ext, [12]

External Abort Type. This bit is defined as 

RES0

.

RES0, [11:10]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

135

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

LPAE, [9]

On taking a Data Abort exception, this bit is set as follows:

1

Using the Long-descriptor translation table formats.

Hardware does not interpret this bit to determine the behavior of the memory system, and

therefore software can set this bit to 0 or 1 without affecting operation.

RES0, [8:6]

RES0

Reserved.

Status, [5:0]

Fault Status Code. This field indicates the type of exception generated. See the DFSR.DFSC

in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for an SError interrupt.

3.1.29.3 DISR at EL2

DISR has a specific format when written at EL2.

The following figure shows the DISR bit assignments when written at EL2:

Figure 3-28: DISR bit assignments for Long-descriptor translation table format

31

12 11 10 9 8

6 5

0

DFSC

EA

AET

RES

0

30

A

A, [31]

Set to 1 when ESB defers an asynchronous SError interrupt. If the implementation does not

include any synchronizable sources of SError interrupt, this bit is 

RES0

.

RES0, [30:12]

RES0

Reserved.

AET, [11:10]

Asynchronous Error Type. Describes the state of the core after taking the SError interrupt

exception. Software might use the information in the syndrome registers to determine what

recovery might be possible. The value is:

0b01

Uncorrected error, Unrecoverable error

 (UEU).

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

136

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

EA, [9]

External Abort Type. This bit is defined as 

RES0

.

RES0, [8:6]

RES0

Reserved.

DFSC, [5:0]

Fault Status Code. This field indicates the type of exception generated. See the description

of HSR.DFSC in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for an SError

interrupt.

3.1.30 ERRIDR, Error ID Register

The ERRIDR defines the number of error records that can be accessed through the Error Record

system registers.

Bit field descriptions

ERRIDR is a 32-bit register, and is part of the 

Reliability, Availability, Serviceability

 (RAS) registers

functional group.

This register is Read Only.

Figure 3-29: ERRIDR bit assignments

31

0

15

16

NUM

RES

0

RES0, [31:16]

RES0

Reserved.

NUM, [15:0]

Number of records that can be accessed through the Error Record system registers.

0x0002

Two records present.

Configurations

ERRIDR is architecturally mapped to AArch64 register ERRIDR_EL1. See 

3.2.40 ERRIDR_EL1,

Error ID Register, EL1

 on page 286.

There is one copy of this register that is used in both Secure and Non-secure states.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

137

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.31 ERRSELR, Error Record Select Register

The ERRSELR selects which error record should be accessed through the Error Record system

registers. This register is not reset on a warm reset.

Bit field descriptions

ERRSELR is a 32-bit register, and is part of the 

Reliability, Availability, Serviceability

 (RAS) registers

functional group.

Figure 3-30: ERRSELR bit assignments

31

0

1

SEL

RES0

RES0, [31:1]

RES0

Reserved.

SEL, [0]

Selects the record accessed through the Error Record system registers.

0

Select record 0 containing errors from level-1 and level-2 RAMs

located in the Cortex

®

-A55 core.

1

Select record 1 containing errors from level-3 RAMs located in the

DSU.

Configurations

ERRSELR is architecturally mapped to AArch64 register ERRSELR_EL1. See 

3.2.41

ERRSELR_EL1, Error Record Select Register, EL1 

 on page 287.

There is one copy of this register that is used in both Secure and Non-secure states.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

138

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.32 ERXADDR, Selected Error Record Address Register

The ERXADDR accesses bits [31:0] of the ERR<n>ADRR address register for the error record

selected by ERRSELR.SEL.

If ERRSELR.SEL==0, then ERXADDR accesses the ERR0ADDR register of the core error record.

See 

ERR0ADDR, Error Record Address Register

.

If ERRSELR.SEL==1, then ERXADDR accesses the ERR1ADDR register of the DSU error record.

See the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

3.1.33 ERXADDR2, Selected Error Record Address Register 2

The ERXADDR2 accesses bits [63:32] of the ERR<n>ADRR address register for the error record

selected by ERRSELR.SEL.

If ERRSELR.SEL==0, then ERXADDR2 accesses the ERR0ADDR register of the core error record.

See 

3.3.2 ERR0ADDR, Error Record Address Register

 on page 386.

If ERRSELR.SEL==1, then ERXADDR2 accesses the ERR1ADDR register of the DSU error record.

See the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

3.1.34 ERXCTLR, Selected Error Record Control Register

The ERXCTLR accesses bits [31:0] of the ERR<n>CTLR control register for the error record

selected by ERRSELR.SEL.

If ERRSELR.SEL==0, then ERXCTLR accesses the ERR0CTLR register of the core error record. See

ERR0CTLR, Error Record Control Register

.

If ERRSELR.SEL==1, then ERXCLTR accesses the ERR1CTLR register of the DSU error record. See

the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

3.1.35 ERXCTLR2, Selected Error Record Control Register 2

The ERXCTLR2 accesses bits [62:32] of the ERR<n>CTLR control register for the error record

selected by ERRSELR.SEL.

If ERRSELR.SEL==0, then ERXCTLR2 accesses the ERR0CTLR register of the core error record. See

ERR0CTLR, Error Record Control Register

.

If ERRSELR.SEL==1, then ERXCLTR2 accesses the ERR1CTLR register of the DSU error record. See

the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

139

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.36 ERXFR, Selected Error Record Feature Register

Register ERXFR accesses bits [31:0] of the ERR<n>FR feature register for the error record selected

by ERRSELR.SEL.

If ERRSELR.SEL==0, then ERXFR accesses the ERR0FR register of the core error record. See 

3.3.4

ERR0FR, Error Record Feature Register

 on page 388.

If ERRSELR.SEL==1, then ERXCLTR accesses the ERR1FR register of the DSU error record. See the

Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

3.1.37 ERXFR2, Selected Error Record Feature Register 2

Register ERXFR2 accesses bits [63:32] of the ERR<n>FR feature register for the error record

selected by ERRSELR.SEL.

If ERRSELR.SEL==0, then ERXFR2 accesses the ERR0FR register of the core error record. See 

3.3.4

ERR0FR, Error Record Feature Register

 on page 388.

If ERRSELR.SEL==1, then ERXCLTR accesses the ERR1FR register of the DSU error record. See the

Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

3.1.38 ERXMISC0, Selected Error Miscellaneous Register 0

Register ERXMISC0 accesses bits [31:0] of the ERR<n>MISC0 control register for the error record

selected by ERRSELR.SEL.

If ERRSELR.SEL==0, then ERXMISC0 accesses bits [31:0] of the ERR0MISC0 register for the core

error record. See 

3.3.5 ERR0MISC0, Error Record Miscellaneous Register 0

 on page 390.

If ERRSELR.SEL==1, then ERXMISC0 accesses bits [31:0] of the ERR1MISC0 register for the DSU

error record. See the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

3.1.39 ERXMISC1, Selected Error Miscellaneous Register 1

Register ERXMISC1 accesses bits [63:32] of the ERR<n>MISC0 miscellaneous register 0 for the

error record selected by ERRSELR.SEL.

If ERRSELR.SEL==0, then ERXMISC1 accesses the ERR0MISC0[63:32] register of the core error

record. See 

3.3.5 ERR0MISC0, Error Record Miscellaneous Register 0

 on page 390.

If ERRSELR.SEL==1, then ERXMISC1 accesses the ERR1MISC0[63:32] register of the DSU error

record. See the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

140

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.40 ERXMISC2, Selected Error Record Miscellaneous Register 2

Register ERXMISC2 accesses bits [31:0] of the ERR<n>MISC1 miscellaneous register 1 for the

error record selected by ERRSELR.SEL.

If ERRSELR.SEL==0, then ERXMISC2 accesses the ERR0MISC1[31:0] register of the core error

record. See 

3.3.6 ERR0MISC1, Error Record Miscellaneous Register 1

 on page 392.

If ERRSELR.SEL==1, then ERXMISC2 accesses the ERR1MISC1[31:0] register of the DSU error

record. See the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

3.1.41 ERXMISC3, Selected Error Record Miscellaneous Register 3

Register ERXMISC3 accesses bits [63:32] of the ERR<n>MISC1 miscellaneous register 1 for the

error record selected by ERRSELR.SEL.

If ERRSELR.SEL==0, then ERXMISC3 accesses the ERR0MISC1[63:32] register of the core error

record. See 

3.3.6 ERR0MISC1, Error Record Miscellaneous Register 1

 on page 392.

If ERRSELR.SEL==1, then ERXMISC3 accesses the ERR1MISC1[63:32] register of the DSU error

record. See the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

3.1.42 ERXPFGCDN, Selected Error Pseudo Fault Generation Count Down

Register

Register ERXPFGCDN accesses the ERR<n>PFGCNDR register for the error record selected by

ERRSELR.SEL.

If ERRSELR.SEL==0, then ERXPFGCDN accesses the ERR0PFGCDN register of the core error

record. See 

3.3.7 ERR0PFGCDN, Error Pseudo Fault Generation Count Down Register

 on page

392.

If ERRSELR.SEL==1, then ERXPFGCDN accesses the ERR1PFGCDNR register of the DSU error

record. See the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

Configurations

ERXPFGCDN is architecturally mapped to AArch64 register ERXPFGCDN_EL1. See 

3.2.47

ERXPFGCDN_EL1, Selected Error Pseudo Fault Generation Count Down Register, EL1

 on

page 289.

Accessing the ERXPFGCDN

This register can be read using MRC with the following syntax:

MRC <syntax>

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

141

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

This register can be written using MCR with the following syntax:

MCR <syntax>

This syntax is encoded with the following settings in the instruction encoding:

<syntax>

coproc

opc1

CRn

CRm

opc2

p15, 0, <Rt>, c15, c2, 2

1111

000

1111

0010

010

Accessibility

This register is accessible in software as follows:

Control

Accessibility

<syntax>

E2H

TGE

NS

EL0

EL1

EL2

EL3

p15, 0, <Rt>, c15, c2, 2 x

x

0

-

RW

n/a

RW

p15, 0, <Rt>, c15, c2, 2 x

0

1

-

RW

RW

RW

p15, 0, <Rt>, c15, c2, 2 x

1

1

-

n/a

RW

RW

'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not

possible.

Traps and enables

For a description of the prioritization of any generated exceptions, see 

Exception priority order

in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for exceptions taken to

AArch32 state, and see 

Synchronous exception prioritization

 for exceptions taken to AArch64

state. Subject to these prioritization rules, the following traps and enables are applicable

when accessing this register.
ERXPFGCDN is accessible at EL3 and can be accessible at EL1 and EL2 depending on the

value of bit[5] in ACTLR(S) and HACTLR. See 

3.1.5 ACTLR, Auxiliary Control Register

 on

page 94 and 

3.1.48 HACTLR, Hyp Auxiliary Control Register

 on page 146.

If EL2 or EL3 are in AArch64, then access to lower exception levels is controlled by

ACTLR_EL2 or ACTLR_EL3. See 

3.2.6 ACTLR_EL2, Auxiliary Control Register, EL2

 on page

235 and 

3.2.7 ACTLR_EL3, Auxiliary Control Register, EL3

 on page 238.

3.1.43 ERXPFGCTL, Selected Error Pseudo Fault Generation Control

Register

Register ERXPFGCTL accesses bits [31:0] of the ERR<n>PFGCTLR register for the error record

selected by ERRSELR.SEL.

If ERRSELR.SEL==0, then ERXPFGCTL accesses the ERR0PFGCTL register of the core error record.

See 

3.3.8 ERR0PFGCTL, Error Pseudo Fault Generation Control Register

 on page 393.

If ERRSELR.SEL==1, then ERXPFGCTL accesses the ERR1PFGCTLR register of the DSU error

record. See the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

142

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Configurations

ERXPFGCTL is architecturally mapped to AArch64 register ERXPFGCTL_EL1. See 

3.2.48

ERXPFGCTL_EL1, Selected Error Pseudo Fault Generation Control Register, EL1

 on page

290.

Accessing the ERXPFGCTL

This register can be read using MRC with the following syntax:

MRC <syntax>

This register can be written using MCR with the following syntax:

MCR <syntax>

This syntax is encoded with the following settings in the instruction encoding:

<syntax>

coproc

opc1

CRn

CRm

opc2

p15, 0, <Rt>, c15, c2, 1

1111

000

1111

0010

001

Accessibility

This register is accessible in software as follows:

Control

Accessibility

<syntax>

E2H

TGE

NS

EL0

EL1

EL2

EL3

p15, 0, <Rt>, c15, c2, 1 x

x

0

-

RW

n/a

RW

p15, 0, <Rt>, c15, c2, 1 x

0

1

-

RW

RW

RW

p15, 0, <Rt>, c15, c2, 1 x

1

1

-

n/a

RW

RW

'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not

possible.

Traps and enables

For a description of the prioritization of any generated exceptions, see 

Exception priority order

in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for exceptions taken to

AArch32 state, and see 

Synchronous exception prioritization

 for exceptions taken to AArch64

state. Subject to these prioritization rules, the following traps and enables are applicable

when accessing this register.
ERXPFGCTL is accessible at EL3 and can be accessible at EL1 and EL2 depending on the

value of bit[5] in ACTLR(S) and HACTLR. See 

3.1.5 ACTLR, Auxiliary Control Register

 on

page 94 and 

3.1.48 HACTLR, Hyp Auxiliary Control Register

 on page 146.

If EL2 or EL3 are in AArch64, then access to lower exception levels is controlled by

ACTLR_EL2 or ACTLR_EL3. See 

3.2.6 ACTLR_EL2, Auxiliary Control Register, EL2

 on page

235 and 

3.2.7 ACTLR_EL3, Auxiliary Control Register, EL3

 on page 238.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

143

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.44 ERXPFGF, Selected Pseudo Fault Generation Feature Register

Register ERXPFGF accesses bits [31:0] of the ERR<n>PFGFR register for the error record selected

by ERRSELR.SEL.

If ERRSELR.SEL==0, then ERXPFGF accesses the ERR0PFGF register of the core error record. See

3.3.9 ERR0PFGF, Error Pseudo Fault Generation Feature Register

 on page 395.

If ERRSELR.SEL==1, then ERXPFGF accesses the ERR1PFGFR register of the DSU error record.

See the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

Configurations

ERXPFGF is architecturally mapped to AArch64 register ERXPFGF_EL1. See 

3.2.49

ERXPFGF_EL1, Selected Pseudo Fault Generation Feature Register, EL1

 on page 292.

Accessing the ERXPFGF

This register can be read using MRC with the following syntax:

MRC <syntax>

This syntax is encoded with the following settings in the instruction encoding:

<syntax>

coproc

opc1

CRn

CRm

opc2

p15, 0, <Rt>, c15, c2, 0

1111

000

1111

0010

000

Accessibility

This register is accessible in software as follows:

Control

Accessibility

<syntax>

E2H

TGE

NS

EL0

EL1

EL2

EL3

p15, 0, <Rt>, c15, c2, 0 x

x

0

-

RO

n/a

RO

p15, 0, <Rt>, c15, c2, 0 x

0

1

-

RO

RO

RO

p15, 0, <Rt>, c15, c2, 0 x

1

1

-

n/a

RO

RO

'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not

possible.

Traps and enables

For a description of the prioritization of any generated exceptions, see 

Exception priority order

in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for exceptions taken to

AArch32 state, and see 

Synchronous exception prioritization

 for exceptions taken to AArch64

state. Subject to these prioritization rules, the following traps and enables are applicable

when accessing this register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

144

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.45 ERXSTATUS, Selected Error Record Primary Status Register

Register ERXSTATUS accesses the ERR<n>STATUS status register for the error record selected by

ERRSELR.SEL.

If ERRSELR.SEL==0, then ERXSTATUS accesses the ERR0STATUS register of the core error record.

See 

3.3.10 ERR0STATUS, Error Record Primary Status Register

 on page 397.

If ERRSELR.SEL==1, then ERXSTATUS accesses the ERR1STATUS register of the DSU error record.

See the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

3.1.46 FCSEIDR, FCSE Process ID Register

The FCSEIDR identifies whether the 

Fast Context Switch Extension

 (FCSE) is implemented.

Bit field descriptions

FCSEIDR is a 32-bit register, and is part of the Legacy feature registers functional group.

Figure 3-31: FCSEIDR bit assignments

RAZ/WI

0

31

RAZ/WI, [31:0]

 

Reserved, read-as-zero/write ignore.

Configurations

There is one instance of this register that is used in both Secure and Non-secure states.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.47 HACR, Hyp Auxiliary Configuration Register

HACR controls trapping to Hyp mode of 

IMPLEMENTATION DEFINED

 aspects of Non-secure EL1 or

EL0 operation. This register is not used in the Cortex

®

-A55 core.

Bit field descriptions

HACR is a 32-bit register, and is part of the Virtualization registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

145

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-32: HACR bit assignments

0

31

RES

0

RES0, [31:0]

RES0

Reserved.

Configurations

AArch32 System register HACR is architecturally mapped to AArch64 System register

HACR_EL2. See 

3.2.54 HACR_EL2, Hyp Auxiliary Configuration Register, EL2

 on page

297.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.48 HACTLR, Hyp Auxiliary Control Register

The HACTLR controls 

IMPLEMENTATION DEFINED

 features of Hyp mode operation.

Bit field descriptions

HACTLR is a 32-bit register, and is part of:
• The Virtualization registers functional group.
• The Other system control registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

146

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-33: HACTLR bit assignments

31

7 6 5

1 0

4

2

SMEN

PWREN

ECTLREN
ACTLREN

8

10

11

12

13

ERXPFGEN

RES

0

CLUSTERPMUEN

9

TSIDEN

RES0, [31:13]

RES0

Reserved.

CLUSTERPMUEN, [12]

Performance Management Registers enable. The value is:

0

CLUSTERPM* registers are not write accessible from a lower

Exception level. This is the reset value.

1

CLUSTERPM* registers are write accessible from EL1 Non-secure if

they are write accessible from EL2.

SMEN, [11]

Scheme Management Registers enable. The value is:

0

Registers CLUSTERTHREADSID, CLUSTERACPSID,

CLUSTERSTASHSID, CLUSTERPARTCR, and CLUSTERBUSQOS are

not write accessible from EL2. This is the reset value.

1

Registers controlled by the TSIDEN bit, CLUSTERACPSID,

CLUSTERSTASHSID, CLUSTERPARTCR, and CLUSTERBUSQOS are

write accessible from EL2.

TSIDEN, [10]

Thread Scheme ID Register enable. The possible values are:

0

Register CLUSTERTHREADSID is not accessible from EL1 nonsecure.

This is the reset value.

1

Register CLUSTERTHREADSID is accessible from EL1 nonsecure if

they are write accessible from EL2.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

147

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

RES0, [9:8]

RES0

Reserved.

PWREN, [7]

Power Control Registers enable. The value is:

0

Registers CPUPWRCTLR, CLUSTERPWRCTLR, CLUSTERPWRDN,

CLUSTERPWRSTAT, CLUSTERL3HIT and CLUSTERL3MISS are not

write accessible from EL1. This is the reset value.

1

Registers CPUPWRCTLR, CLUSTERPWRCTLR, CLUSTERPWRDN,

CLUSTERPWRSTAT, CLUSTERL3HIT and CLUSTERL3MISS are write

accessible from EL1 Non-secure if they are write accessible from

EL2.

RES0, [6]

RES0

Reserved.

ERXPFGEN, [5]

Error Record Registers enable. The value is:

0

ERXPFG* are not write accessible from EL1. This is the reset value.

1

ERXPFG* are write accessible from EL1 Non-secure if they are write

accessible from EL2.

RES0, [4:2]

RES0

Reserved.

ECTLREN, [1]

Extended Control Registers enable. The value is:

0

CPUECTLR and CLUSTERECTLR are not write accessible from EL1.

This is the reset value.

1

CPUECTLR and CLUSTERECTLR are write accessible from EL1 Non-

secure if they are write accessible from EL2.

ACTLREN, [0]

Auxiliary Control Registers enable. The value is:

0

CPUACTLR and CLUSTERACTLR are not write accessible from EL1.

This is the reset value.

1

CPUACTLR and CLUSTERACTLR are write accessible from EL1 Non-

secure if they are write accessible from EL2.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

148

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Configurations

The HACTLR is architecturally mapped to the AArch64 ACTLR_EL2 register. See 

3.2.6

ACTLR_EL2, Auxiliary Control Register, EL2

 on page 235.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.49 HACTLR2, Hyp Auxiliary Control Register 2

The HACTLR2 Provides additional space to the HACTLR register to hold 

IMPLEMENTATION DEFINED

trap functionality.

Bit field descriptions

HACTLR2 is a 32-bit register, and is part of:
• The Virtualization registers functional group.
• The Other system control registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Figure 3-34: HACTLR2 bit assignments

0

31

RES

0

RES0, [31:0]

RES0

Reserved.

Configurations

The HACTLR2 is architecturally mapped to the AArch64 ACTLR_EL2[63:32] register. See

3.2.6 ACTLR_EL2, Auxiliary Control Register, EL2

 on page 235.

RW fields in this register reset to architecturally 

UNKNOWN

 values.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

149

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.50 HADFSR, Hyp Auxiliary Data Fault Status Syndrome Register

HADFSR provides additional 

IMPLEMENTATION DEFINED

 syndrome information for Data Abort

exceptions taken to Hyp mode. This register is not used in the Cortex

®

-A55 core.

Bit field descriptions

HADFSR is a 32-bit register, and is part of:
• The Virtualization registers functional group.
• The Exception and fault handling registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Figure 3-35: HADFSR bit assignments

0

31

RES

0

RES0, [31:0]

RES0

Reserved.

Configurations

AArch32 System register HADFSR is architecturally mapped to AArch64 System register

AFSR0_EL2. See 

3.2.9 AFSR0_EL2, Auxiliary Fault Status Register 0, EL2

 on page 241.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.51 HAIFSR, Hyp Auxiliary Instruction Fault Status Syndrome Register

HAIFSR provides additional 

IMPLEMENTATION DEFINED

 syndrome information for Prefetch Abort

exceptions taken to Hyp mode. This register is not used in the Cortex

®

-A55 core.

Bit field descriptions

HAIFSR is a 32-bit register, and is part of:
• The Virtualization registers functional group.
• The Exception and fault handling registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

150

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-36: HAIFSR bit assignments

0

31

RES

0

RES0, [31:0]

 

Reserved, 

RES0

.

Configurations

AArch32 System register HAIFSR is architecturally mapped to AArch64 System register

AFSR1_EL2. See 

3.2.12 AFSR1_EL2, Auxiliary Fault Status Register 1, EL2

 on page 243.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.52 HAMAIR0, Hyp Auxiliary Memory Attribute Indirection Register 0

HAMAIR0 provides additional 

IMPLEMENTATION DEFINED

 memory attributes for the memory

attribute encodings defined by HMAIR0. These 

IMPLEMENTATION DEFINED

 attributes can only

provide additional qualifiers for the memory attribute encodings, and cannot change the memory

attributes defined in HMAIR0. This register is not used in the Cortex

®

-A55 core.

Bit field descriptions

HAMAIR0 is a 32-bit register, and is part of:
• The Virtualization registers functional group.
• The Virtual memory control registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Figure 3-37: HAMAIR0 bit assignments

0

31

RES

0

RES0, [31:0]

 

Reserved, 

RES0

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

151

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Configurations

AArch32 System register HAMAIR0 is architecturally mapped to AArch64 System register

AMAIR_EL2[31:0]. See 

3.2.16 AMAIR_EL2, Auxiliary Memory Attribute Indirection Register,

EL2

 on page 247.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.53 HAMAIR1, Hyp Auxiliary Memory Attribute Indirection Register 1

HAMAIR1 provides additional 

IMPLEMENTATION DEFINED

 memory attributes for the memory

attribute encodings defined by HMAIR1. These 

IMPLEMENTATION DEFINED

 attributes can only

provide additional qualifiers for the memory attribute encodings, and cannot change the memory

attributes defined in HMAIR1. This register is not used in the Cortex

®

-A55 core.

Bit field descriptions

HAMAIR1 is a 32-bit register, and is part of:
• The Virtualization registers functional group.
• The Virtual memory control registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Figure 3-38: HAMAIR1 bit assignments

0

31

RES

0

RES0, [31:0]

 

Reserved, 

RES0

.

Configurations

AArch32 System register HAMAIR1 is architecturally mapped to AArch64 System register

AMAIR_EL2[63:32]. See 

3.2.16 AMAIR_EL2, Auxiliary Memory Attribute Indirection Register,

EL2

 on page 247.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

152

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.54 HCR, Hyp Configuration Register

The HCR provides configuration controls for virtualization, including defining whether various Non-

secure operations are trapped to Hyp mode.

Bit field descriptions

HCR is a 32-bit register, and is part of the Virtualization registers functional group.

This register resets to value 

0x00000002

.

Figure 3-39: HCR bit assignments

31

0

30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

TRVM

VM
SWIO
PTW
FMO
IMO
AMO
VF
VI
VA
FB
BSU
DC
TWI
TWE
TID0

HCD

TGE

TVM

TTLB

TPU

TSW

TAC

TIDCP

TSC

TID3
TID2
TID1

TPC

RES

0

RES0, [31]

RES0

Reserved.

RES0, [29:28]

RES0

Reserved.

TGE, [27]

Trap General Exceptions. If this bit is set, and SCR_EL3.NS is set, then:

All exceptions that would be routed to EL1 are routed to EL2.
• The SCTLR.M bit is treated as 0 regardless of its actual state, other than for reading the

bit.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

153

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

• The HCR.FMO, IMO, and AMO bits are treated as 1 regardless of their actual state, other

than for reading the bits.

• All virtual interrupts are disabled.
• An exception return to EL1 is treated as an illegal exception return.

The Cortex

®

-A55 core does not support any 

IMPLEMENTATION DEFINED

 mechanisms for

signaling virtual interrupts.

Additionally, if HCR.TGE is 1, the HDCR.{TDRA,TDOSA,TDA} bits are ignored and the core

behaves as if they are set to 1, other than for the value read back from HDCR.

TSC, [19]

Trap SMC instruction. When this bit is set to 1, any attempt from a Non-secure EL1 state to

execute an SMC instruction, that passes its condition check if it is conditional, is trapped to

Hyp mode.

SWIO, [1]

Set/Way Invalidation Override. This bit is 

RES1

.

Configurations

HCR is architecturally mapped to AArch64 register HCR_EL2[31:0]. See 

3.2.55 HCR_EL2,

Hypervisor Configuration Register, EL2

 on page 298.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.55 HCR2, Hyp Configuration Register 2

The HCR2 provides additional configuration controls for virtualization.

Bit field descriptions

HCR2 is a 32-bit register, and is part of the Virtualization registers functional group.

This register resets to value 

0x00000000

.

Figure 3-40: HCR2 bit assignments

31

0

CD
ID

1

2

4

5

3

6

TERR

MIOCNCE

TEA

RES

0

7

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

154

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

MIOCNCE, [6]

Mismatched Inner/Outer Cacheable Non-Coherency Enable, for the Non-secure PL1&0

translation regime.

This bit is not implemented, RAZ/WI.

Configurations

HCR2 is architecturally mapped to AArch64 register HCR_EL2[63:32]. See 

3.2.55 HCR_EL2,

Hypervisor Configuration Register, EL2

 on page 298.

This register is accessible only at EL2 or EL3.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.56 HSCTLR, Hyp System Control Register

The HSCTLR provides top level control of the system operation in Hyp mode.

This register provides Hyp mode control of features controlled by the Banked SCTLR bits, and

shows the values of the non-Banked SCTLR bits.

Bit field descriptions

HSCTLR is a 32-bit register, and is part of:
• The Virtualization registers functional group.
• The Other system control registers functional group.

Figure 3-41: HSCTLR bit assignments

M

31 30 29

26 25 24

22 21 20 19 18

13 12 11

7 6

3 2 1 0

I

C A

WXN

9

SED

8

ITD

5 4

CP15BEN

27

28

23

17 16 15

10

TE

EE

RES

0

RES

1

LSMAOE

nTLSMD

I, [12]

Instruction cache enable. This is an enable bit for instruction caches at EL2:

0

Instruction caches disabled at EL2. If HSCTLR.M is set to 0,

instruction accesses from stage 1 of the EL2 translation regime are to

Normal memory, Outer Shareable, Inner Non-cacheable, Outer Non-

cacheable. This is the reset value.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

155

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

1

Instruction caches enabled at EL2. If HSCTLR.M is set to 0,

instruction accesses from stage 1 of the EL2 translation regime are

to Normal memory, Outer Shareable, Inner Write-Through, Outer

Write-Through.

When this bit is 0, all EL2 Normal memory instruction accesses are Non-cacheable.

The reset value for this field is 

UNKNOWN

.

C, [2]

Cache enable. This is an enable bit for data and unified caches at EL2:

0

Data and unified caches disabled at EL2. This is the reset value.

1

Data and unified caches enabled at EL2.

When this bit is 0, all EL2 Normal memory data accesses and all accesses to the EL2

translation tables are Non-cacheable.

The reset value for this field is 

UNKNOWN

.

M, [0]

MMU enable. This is a global enable bit for the EL2 stage 1 MMU:

0

EL2 stage 1 MMU disabled. This is the reset value.

1

EL2 stage 1 MMU enabled.

The reset value for this field is 

UNKNOWN

.

Configurations

HSCTLR is architecturally mapped to AArch64 register SCTLR_EL2. See 

3.2.95 SCTLR_EL2,

System Control Register, EL2

 on page 361.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.57 HSR, Hyp Syndrome Register

The HSR holds syndrome information for an exception taken to Hyp mode.

Bit field descriptions

HSR is a 32-bit register, and is part of:
• The Virtualization registers functional group.
• The Exception and fault handling registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

156

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-42: HSR bit assignments

ISS

31

26 25 24

0

EC

IL

EC, [31:26]

Exception class. The exception class for the exception that is taken in Hyp mode. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

 for more information.

IL, [25]

Instruction length. See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for

more information.

ISS, [24:0]

Instruction specific syndrome. See the 

Arm

®

 Architecture Reference Manual for A-profile

architecture

 for more information. The interpretation of this field depends on the value of the

EC field. See 

3.1.57.1 Encoding of ISS[24:20] when HSR[31:30] is 0b00

 on page 157.

Configurations

HSR is architecturally mapped to AArch64 register ESR_EL2. See 

3.2.52 ESR_EL2, Exception

Syndrome Register, EL2

 on page 294.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.57.1 Encoding of ISS[24:20] when HSR[31:30] is 0b00

For EC values that are non-zero and have the two most-significant bits 0b00, ISS[24:20] provides

the condition field for the trapped instruction, together with a valid flag for this field.

The encoding of this part of the ISS field is:

CV, ISS[24]

Condition valid. Possible values of this bit are:

0

The COND field is not valid.

1

The COND field is valid.

When an instruction is trapped, CV is set to 1.

COND, ISS[23:20]

The Condition field for the trapped instruction. This field is valid only when CV is set to 1.

If CV is set to 0, this field is 

RES0

.

When an instruction is trapped, the COND field is set to the condition the instruction was

executed with.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

157

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

When reporting an SEI, the following occurs:
• AET always reports an uncontainable error (UC) with value 

0b00

.

• EA is 

RES0

.

• DFSC is always at 

0b010001

.

When reporting a synchronous external data abort, EA is 

RES0

.

When reporting a synchronous external prefetch abort, EA is 

RES0

.

3.1.58 HTTBR, Hyp Translation Table Base Register

The HTTBR holds the base address of the translation table for the stage 1 translation of memory

accesses from Hyp mode.

Bit field descriptions

HTTBR is a 64-bit register.

Figure 3-43: HTTBR bit assignments

0

1

63

48 47

BADDR

CnP

RES

0

CnP, [0]

Common not Private. The possible values are:

0

CnP is not supported.

1

CnP is supported.

Configurations

AArch32 System register HTTBR is architecturally mapped to AArch64 System register

TTBR0_EL2.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

158

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.59 ID_AFR0, Auxiliary Feature Register 0

The ID_AFR0 provides information about the 

IMPLEMENTATION DEFINED

 features of the PE in

AArch32. This register is not used in the Cortex

®

-A55 core.

Bit field descriptions

ID_AFR0 is a 32-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Figure 3-44: ID_AFR0 bit assignments

0

31

res0

RES0, [31:0]

 

Reserved, 

RES0

.

Configurations

AArch32 System register ID_AFR0 is architecturally mapped to AArch64 System register

ID_AFR0_EL1. See 

3.2.65 ID_AFR0_EL1, AArch32 Auxiliary Feature Register 0, EL1

 on page

314.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.60 ID_DFR0, Debug Feature Register 0

The ID_DFR0 provides top-level information about the debug system in AArch32.

Bit field descriptions

ID_DFR0 is a 32-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

159

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-45: ID_DFR0 bit assignments

31

12 11

8 7

0

4 3

24 23

20 19

16 15

28 27

PerfMon

MProfDbg

MMapTrc

CopTrc

CopSDbg

CopDbg

res0

RES0, [31:28]

RES0

Reserved.

PerfMon, [27:24]

Indicates support for performance monitor model:

0x4

Support for 

Performance Monitor Unit version 3

 (PMUv3) system

registers, with a 16-bit evtCount field.

MProfDbg, [23:20]

Indicates support for memory-mapped debug model for M profile cores:

0x0

This product does not support M profile Debug architecture.

MMapTrc, [19:16]

Indicates support for memory-mapped trace model:

0x1

Support for Arm trace architecture, with memory-mapped access.

In the Trace registers, the ETMIDR gives more information about the implementation.

CopTrc, [15:12]

Indicates support for coprocessor-based trace model:

0x0

This product does not support Arm trace architecture.

RES0, [11:8]

RES0

Reserved.

CopSDbg, [7:4]

Indicates support for coprocessor-based Secure debug model:

0x8

This product supports v8.2 Debug architecture.

CopDbg, [3:0]

Indicates support for coprocessor-based debug model:

0x8

This product supports v8.2 Debug architecture.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

160

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Configurations

ID_DFR0 is architecturally mapped to AArch64 register ID_DFR0_EL1. See 

3.2.66

ID_DFR0_EL1, AArch32 Debug Feature Register 0, EL1

 on page 315.

There is one copy of this register that is used in both Secure and Non-secure states.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.61 ID_ISAR0, Instruction Set Attribute Register 0

The ID_ISAR0 provides information about the instruction sets implemented by the core in

AArch32.

Bit field descriptions

ID_ISAR0 is a 32-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Figure 3-46: ID_ISAR0 bit assignments

31

28 27

24 23

20 19

16 15

12 11

8 7

4 3

0

Divide

Debug

Coproc

CmpBranch

Bitfield

BitCount

Swap

RES

0

RES0, [31:28]

RES0

Reserved.

Divide, [27:24]

Indicates the implemented Divide instructions:

0x2

SDIV

 and 

UDIV

 in the T32 instruction set.

SDIV

 and 

UDIV

 in the A32 instruction set.

Debug, [23:20]

Indicates the implemented Debug instructions:

0x1

BKPT

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

161

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Coproc, [19:16]

Indicates the implemented Coprocessor instructions:

0x0

None implemented, except for instructions separately attributed by

the architecture to provide access to AArch32 System registers and

System instructions.

CmpBranch, [15:12]

Indicates the implemented combined Compare and Branch instructions in the T32 instruction

set:

0x1

CBNZ

 and 

CBZ

.

Bitfield, [11:8]

Indicates the implemented bit field instructions:

0x1

BFC

BFI

SBFX

, and 

UBFX

.

BitCount, [7:4]

Indicates the implemented Bit Counting instructions:

0x1

CLZ

.

Swap, [3:0]

Indicates the implemented Swap instructions in the A32 instruction set:

0x0

None implemented.

Configurations

ID_ISAR0 is architecturally mapped to AArch64 register ID_ISAR0_EL1. See 

3.2.67

ID_ISAR0_EL1, AArch32 Instruction Set Attribute Register 0, EL1

 on page 316.

There is one copy of this register that is used in both Secure and Non-secure states.

Must be interpreted with ID_ISAR1, ID_ISAR2, ID_ISAR3, ID_ISAR4, and ID_ISAR5. See:

3.1.62 ID_ISAR1, Instruction Set Attribute Register 1

 on page 162.

3.1.63 ID_ISAR2, Instruction Set Attribute Register 2

 on page 164.

3.1.64 ID_ISAR3, Instruction Set Attribute Register 3

 on page 167.

3.1.65 ID_ISAR4, Instruction Set Attribute Register 4

 on page 169.

3.1.66 ID_ISAR5, Instruction Set Attribute Register 5

 on page 170.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

162

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.62 ID_ISAR1, Instruction Set Attribute Register 1

The ID_ISAR1 provides information about the instruction sets implemented by the core in

AArch32.

Bit field descriptions

ID_ISAR1 is a 32-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Figure 3-47: ID_ISAR1 bit assignments

31

28 27

24 23

20 19

16 15

12 11

8 7

4 3

0

Jazelle

Interwork Immediate

IfThen

Extend

Except_AR

Except

Endian

Jazelle, [31:28]

Indicates the implemented Jazelle Extension instructions:

0x1

The 

BXJ

 instruction, and the J bit in the PSR.

Interwork, [27:24]

Indicates the implemented Interworking instructions:

0x3

• The 

BX

 instruction, and the T bit in the PSR.

• The 

BLX

 instruction. PC loads have 

BX

-like behavior.

• Data-processing instructions in the A32 instruction set with the PC as the

destination and the S bit clear have 

BX

-like behavior.

Immediate, [23:20]

Indicates the implemented data-processing instructions with long immediates:

0x1

• The 

MOVT

 instruction.

• The 

MOV

 instruction encodings with zero-extended 16-bit immediates.

• The T32 

ADD

 and 

SUB

 instruction encodings with zero-extended 12-bit immediates,

and other 

ADD

ADR

, and 

SUB

 encodings cross-referenced by the pseudocode for

those encodings.

IfThen, [19:16]

Indicates the implemented If-Then instructions in the T32 instruction set:

0x1

The 

IT

 instructions, and the IT bits in the PSRs.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

163

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Extend, [15:12]

Indicates the implemented Extend instructions:

0x2

• The 

SXTB

SXTH

UXTB

, and 

UXTH

 instructions.

• The 

SXTB16

SXTAB

SXTAB16

SXTAH

UXTB16

UXTAB

UXTAB16

, and 

UXTAH

 instructions.

Except_AR, [11:8]

Indicates the implemented A profile exception-handling instructions:

0x1

The 

SRS

 and 

RFE

 instructions, and the A and R profile forms of the

CPS

 instruction.

Except, [7:4]

Indicates the implemented exception-handling instructions in the A32 instruction set:

0x1

The 

LDM

 (exception return), 

LDM

 (user registers), and 

STM

 (user

registers) instruction versions.

Endian, [3:0]

Indicates the implemented Endian instructions:

0x1

The 

SETEND

 instruction, and the E bit in the PSRs.

Configurations

ID_ISAR1 is architecturally mapped to AArch64 register ID_ISAR1_EL1. See 

3.2.68

ID_ISAR1_EL1, AArch32 Instruction Set Attribute Register 1, EL1

 on page 318.

There is one copy of this register that is used in both Secure and Non-secure states.

Must be interpreted with ID_ISAR0, ID_ISAR2, ID_ISAR3, ID_ISAR4 and ID_ISAR5. See:

3.1.61 ID_ISAR0, Instruction Set Attribute Register 0

 on page 161.

3.1.63 ID_ISAR2, Instruction Set Attribute Register 2

 on page 164.

3.1.64 ID_ISAR3, Instruction Set Attribute Register 3

 on page 167.

3.1.65 ID_ISAR4, Instruction Set Attribute Register 4

 on page 169.

3.1.66 ID_ISAR5, Instruction Set Attribute Register 5

 on page 170.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

164

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.63 ID_ISAR2, Instruction Set Attribute Register 2

The ID_ISAR2 provides information about the instruction sets implemented by the core in

AArch32.

Bit field descriptions

ID_ISAR2 is a 32-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Figure 3-48: ID_ISAR2 bit assignments

31

28 27

24 23

20 19

16 15

12 11

8 7

4 3

0

MultiAccessInt

Reversal

PSR_AR

MultU

MultS

Mult

MemHint

LoadStore

Reversal, [31:28]

Indicates the implemented Reversal instructions:

0x2

• The 

REV

REV16

, and 

REVSH

 instructions.

• The 

RBIT

 instruction.

PSR_AR, [27:24]

Indicates the implemented A and R profile instructions to manipulate the PSR:

0x1

The 

MRS

 and 

MSR

 instructions, and the exception return forms of data-

processing instructions.

The exception return forms of the data-processing instructions are:
• In the A32 instruction set, data-processing instructions with the PC as the destination

and the S bit set.

• In the T32 instruction set, the 

SUBS

 

PC

LR

#N

 instruction.

MultU, [23:20]

Indicates the implemented advanced unsigned Multiply instructions:

0x2

• The 

UMULL

 and 

UMLAL

 instructions.

• The 

UMAAL

 instruction.

MultS, [19:16]

Indicates the implemented advanced signed Multiply instructions.

0x3

• The 

SMULL

 and 

SMLAL

 instructions.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

165

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

• The 

SMLABB

SMLABT

SMLALBB

SMLALBT

SMLALTB

SMLALTT

SMLATB

SMLATT

SMLAWB

,

SMLAWT

SMULBB

SMULBT

SMULTB

SMULTT

SMULWB

SMULWT

 instructions, and the Q bit

in the PSRs.

• The 

SMLAD

SMLADX

SMLALD

SMLALDX

SMLSD

SMLSDX

SMLSLD

SMLSLDX

SMMLA

SMMLAR

,

SMMLS

SMMLSR

SMMUL

SMMULR

SMUAD

SMUADX

SMUSD

, and 

SMUSDX

 instructions.

Mult, [15:12]

Indicates the implemented additional Multiply instructions:

0x2

• The 

MUL

 instruction.

• The 

MLA

 instruction.

• The 

MLS

 instruction.

MultiAccessInt, [11:8]

Indicates the support for interruptible multi-access instructions:

0x0

No support. This means that the LDM and STM instructions are not

interruptible.

MemHint, [7:4]

Indicates the implemented memory hint instructions:

0x4

• The 

PLD

 instruction.

• The 

PLI

 instruction.

• The 

PLDW

 instruction.

LoadStore, [3:0]

Indicates the implemented additional load/store instructions:

0x2

• The 

LDRD

 and 

STRD

 instructions.

• The Load Acquire (

LDAB

LDAH

LDA

LDAEXB

LDAEXH

LDAEX

, and 

LDAEXD

) and Store

Release (

STLB

STLH

STL

STLEXB

STLEXH

STLEX

, and 

STLEXD

) instructions.

Configurations

ID_ISAR2 is architecturally mapped to AArch64 register ID_ISAR2_EL1. See 

3.2.69

ID_ISAR2_EL1, AArch32 Instruction Set Attribute Register 2, EL1

 on page 321.

There is one copy of this register that is used in both Secure and Non-secure states.

Must be interpreted with ID_ISAR0, ID_ISAR1, ID_ISAR3, ID_ISAR4 and ID_ISAR5. See:

3.1.61 ID_ISAR0, Instruction Set Attribute Register 0

 on page 161.

3.1.62 ID_ISAR1, Instruction Set Attribute Register 1

 on page 162.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

166

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.64 ID_ISAR3, Instruction Set Attribute Register 3

 on page 167.

3.1.65 ID_ISAR4, Instruction Set Attribute Register 4

 on page 169.

3.1.66 ID_ISAR5, Instruction Set Attribute Register 5

 on page 170.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.64 ID_ISAR3, Instruction Set Attribute Register 3

The ID_ISAR3 provides information about the instruction sets implemented by the core in

AArch32.

Bit field descriptions

ID_ISAR3 is a 32-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Figure 3-49: ID_ISAR3 bit assignments

TabBranch

31

28 27

24 23

20 19

16 15

12 11

8 7

4 3

0

T32Copy

SVC

Saturate

T32EE

SynchPrim

SIMD

TrueNOP

T32EE, [31:28]

Indicates the implemented Thumb Execution Environment (T32EE) instructions:

0x0

None implemented.

TrueNOP, [27:24]

Indicates the implemented true NOP instructions:

0x1

True 

NOP

 instructions in both the A32 and T32 instruction sets, and

additional NOP-compatible hints.

T32Copy, [23:20]

Indicates the support for T32 non flag-setting 

MOV

 instructions:

0x1

Support for T32 instruction set encoding T1 of the 

MOV

 (register)

instruction, copying from a low register to a low register.

TabBranch, [19:16]

Indicates the implemented Table Branch instructions in the T32 instruction set.

0x1

The 

TBB

 and 

TBH

 instructions.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

167

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

SynchPrim, [15:12]

Used in conjunction with ID_ISAR4.SynchPrim_frac to indicate the implemented

Synchronization Primitive instructions.

0x2

• The 

LDREX

 and 

STREX

 instructions.

• The 

CLREX

LDREXB

STREXB

, and 

STREXH

 instructions.

• The 

LDREXD

 and 

STREXD

 instructions.

SVC, [11:8]

Indicates the implemented SVC instructions:

0x1

The 

SVC

 instruction.

SIMD, [7:4]

Indicates the implemented 

Single Instruction Multiple Data

 (SIMD) instructions.

0x3

• The 

SSAT

 and 

USAT

 instructions, and the Q bit in the PSRs.

• The 

PKHBT

PKHTB

QADD16

QADD8

QASX

QSUB16

QSUB8

QSAX

SADD16

SADD8

SASX

,

SEL

SHADD16

SHADD8

SHASX

SHSUB16

SHSUB8

SHSAX

SSAT16

SSUB16

SSUB8

SSAX

,

SXTAB16

SXTB16

UADD16

UADD8

UASX

UHADD16

UHADD8

UHASX

UHSUB16

UHSUB8

,

UHSAX

UQADD16

UQADD8

UQASX

UQSUB16

UQSUB8

UQSAX

USAD8

USADA8

USAT16

,

USUB16

USUB8

USAX

UXTAB16

UXTB16

 instructions, and the GE[3:0] bits in the PSRs.

The SIMD field relates only to implemented instructions that perform SIMD operations

on the general-purpose registers. In an implementation that supports Advanced SIMD

and floating-point instructions, MVFR0, MVFR1, and MVFR2 give information about

the implemented Advanced SIMD instructions.

Saturate, [3:0]

Indicates the implemented Saturate instructions:

0x1

The 

QADD

QDADD

QDSUB

QSUB

 and the Q bit in the PSRs.

Configurations

ID_ISAR3 is architecturally mapped to AArch64 register ID_ISAR3_EL1. See 

3.2.70

ID_ISAR3_EL1, AArch32 Instruction Set Attribute Register 3, EL1

 on page 323.

There is one copy of this register that is used in both Secure and Non-secure states.

Must be interpreted with ID_ISAR0, ID_ISAR1, ID_ISAR2, ID_ISAR4, and ID_ISAR5. See:

3.1.61 ID_ISAR0, Instruction Set Attribute Register 0

 on page 161.

3.1.62 ID_ISAR1, Instruction Set Attribute Register 1

 on page 162.

3.1.63 ID_ISAR2, Instruction Set Attribute Register 2

 on page 164.

3.1.65 ID_ISAR4, Instruction Set Attribute Register 4

 on page 169.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

168

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.66 ID_ISAR5, Instruction Set Attribute Register 5

 on page 170.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.65 ID_ISAR4, Instruction Set Attribute Register 4

The ID_ISAR4 provides information about the instruction sets implemented by the core in

AArch32.

Bit field descriptions

ID_ISAR4 is a 32-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Figure 3-50: ID_ISAR4 bit assignments

31

24 23

20 19

16 15

12 11

8 7

4 3

0

SynchPrim_frac

SWP_frac

28 27

PSR_M

Barrier

SMC

Writeback WithShifts

Unpriv

SWP_frac, [31:28]

Indicates support for the memory system locking the bus for 

SWP

 or 

SWPB

 instructions:

0x0

SWP

 and 

SWPB

 instructions not implemented.

PSR_M, [27:24]

Indicates the implemented M profile instructions to modify the PSRs:

0x0

None implemented.

SynchPrim_frac, [23:20]

This field is used with the ID_ISAR3.SynchPrim field to indicate the implemented

Synchronization Primitive instructions:

0x0

• The 

LDREX

 and 

STREX

 instructions.

• The 

CLREX

LDREXB

LDREXH

STREXB

, and 

STREXH

 instructions.

• The 

LDREXD

 and 

STREXD

 instructions.

Barrier, [19:16]

Indicates the supported Barrier instructions in the A32 and T32 instruction sets:

0x1

The 

DMB

DSB

, and 

ISB

 barrier instructions.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

169

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

SMC, [15:12]

Indicates the implemented 

SMC

 instructions:

0x1

The 

SMC

 instruction.

Write-Back, [11:8]

Indicates the support for Write-Back addressing modes:

0x1

Core supports all the Write-Back addressing modes defined in

Arm

®

v8‑A.

WithShifts, [7:4]

Indicates the support for instructions with shifts:

0x4

• Support for shifts of loads and stores over the range LSL 0-3.
• Support for other constant shift options, both on load/store and other instructions.
• Support for register-controlled shift options.

Unpriv, [3:0]

Indicates the implemented unprivileged instructions:

0x2

• The 

LDRBT

LDRT

STRBT

, and 

STRT

 instructions.

• The 

LDRHT

LDRSBT

LDRSHT

, and 

STRHT

 instructions.

Configurations

ID_ISAR4 is architecturally mapped to AArch64 register ID_ISAR4_EL1. See 

3.2.71

ID_ISAR4_EL1, AArch32 Instruction Set Attribute Register 4, EL1

 on page 325.

There is one copy of this register that is used in both Secure and Non-secure states.

Must be interpreted with ID_ISAR0, ID_ISAR1, ID_ISAR2, ID_ISAR3, and ID_ISAR5. See:

3.1.61 ID_ISAR0, Instruction Set Attribute Register 0

 on page 161.

3.1.62 ID_ISAR1, Instruction Set Attribute Register 1

 on page 162.

3.1.63 ID_ISAR2, Instruction Set Attribute Register 2

 on page 164.

3.1.64 ID_ISAR3, Instruction Set Attribute Register 3

 on page 167.

3.1.66 ID_ISAR5, Instruction Set Attribute Register 5

 on page 170.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

170

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.66 ID_ISAR5, Instruction Set Attribute Register 5

The ID_ISAR5 provides information about the instruction sets that the core implements.

Bit field descriptions

ID_ISAR5 is a 32-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Figure 3-51: ID_ISAR5 bit assignments

31

12 11

8 7

0

SHA1

AES

SEVL

SHA2

4 3

16 15

20 19

CRC32

23

24

27

28

RDM

RES

0

RES0, [31:28]

RES0

Reserved.

RDM, [27:24]

VQRDMLAH and VQRDMLSH instructions in AArch32. The value is:

0x1

VQRDMLAH and VQRDMLSH instructions are implemented.

RES0, [23:20]

RES0

Reserved.

CRC32, [19:16]

Indicates whether CRC32 instructions are implemented in AArch32 state. The value is:

0x1

CRC32B, CRC32H, CRC32W, CRC32CB, CRC32CH, and CRC32CW

instructions are implemented.

SHA2, [15:12]

Indicates whether SHA2 instructions are implemented in AArch32 state:

0x0

No SHA2 instructions implemented. This is the value when the

Cryptographic Extensions are not implemented or are disabled.

0x1

SHA256H

SHA256H2

SHA256SU0

, and 

SHA256SU1

 implemented. This is

the value when the Cryptographic Extensions are implemented and

enabled.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

171

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

SHA1, [11:8]

Indicates whether SHA1 instructions are implemented in AArch32 state. Defined values are:

0x0

No SHA1 instructions implemented. This is the value when the

Cryptographic Extensions are not implemented or are disabled.

0x1

SHA1C

SHA1P

SHA1M

SHA1H

SHA1SU0

, and 

SHA1SU1

 implemented. This

is the value when the Cryptographic Extensions are implemented and

enabled.

AES, [7:4]

Indicates whether AES instructions are implemented in AArch32 state. Defined values are:

0x0

No AES instructions implemented. This is the value when the

Cryptographic Extensions are not implemented or are disabled.

0x2

• AESE, AESD, AESMC, and AESIMC implemented.
• PMULL/PMULL2 instructions operating on 64-bit data quantities.

This is the value when the Cryptographic Extensions are

implemented and enabled.

SEVL, [3:0]

Indicates whether the 

SEVL

 instruction is implemented in AArch32. The value is:

0x1

SEVL

 is implemented as send event local.

Configurations

ID_ISAR5 is architecturally mapped to AArch64 register ID_ISAR5_EL1. See 

3.2.72

ID_ISAR5_EL1, AArch32 Instruction Set Attribute Register 5, EL1

 on page 327.

There is one copy of this register that is used in both Secure and Non-secure states.

ID_ISAR5 must be interpreted with ID_ISAR0, ID_ISAR1, ID_ISAR2, ID_ISAR3, and ID_ISAR4. See:

3.1.61 ID_ISAR0, Instruction Set Attribute Register 0

 on page 161.

3.1.62 ID_ISAR1, Instruction Set Attribute Register 1

 on page 162.

3.1.63 ID_ISAR2, Instruction Set Attribute Register 2

 on page 164.

3.1.64 ID_ISAR3, Instruction Set Attribute Register 3

 on page 167.

3.1.65 ID_ISAR4, Instruction Set Attribute Register 4

 on page 169.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

172

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.67 ID_ISAR6, Instruction Set Attribute Register 6

The ID_ISAR6 provides information about the instruction sets that the core implements.

Bit field descriptions

ID_ISAR6 is a 32-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Figure 3-52: ID_ISAR6 bit assignments

31

8 7

0

DP

4 3

RES

0

RES0, [31:8]

RES0

Reserved.

DP, [7:4]

UDOT and SDOT instructions. The value is:

0b0001

UDOT and SDOT instructions are implemented.

RES0, [3:0]

RES0

Reserved.

Configurations

ID_ISAR6 is architecturally mapped to AArch64 register ID_ISAR6_EL1. See 

3.2.73

ID_ISAR6_EL1, AArch32 Instruction Set Attribute Register 6, EL1

 on page 329.

There is one copy of this register that is used in both Secure and Non-secure states.

ID_ISAR6 must be interpreted with ID_ISAR0, ID_ISAR1, ID_ISAR2, ID_ISAR3, ID_ISAR4, and

ID_ISAR5. See:

3.1.61 ID_ISAR0, Instruction Set Attribute Register 0

 on page 161.

3.1.62 ID_ISAR1, Instruction Set Attribute Register 1

 on page 162.

3.1.63 ID_ISAR2, Instruction Set Attribute Register 2

 on page 164.

3.1.64 ID_ISAR3, Instruction Set Attribute Register 3

 on page 167.

3.1.65 ID_ISAR4, Instruction Set Attribute Register 4

 on page 169.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

173

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.66 ID_ISAR5, Instruction Set Attribute Register 5

 on page 170.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.68 ID_MMFR0, Memory Model Feature Register 0

The ID_MMFR0 provides information about the memory model and memory management support

in AArch32.

Bit field descriptions

ID_MMFR0 is a 32-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Figure 3-53: ID_MMFR0 bit assignments

31

12 11

8 7

0

OuterShr

PMSA

4 3

28 27

24 23

20 19

16 15

FCSE

AuxReg

TCM

ShareLvl

VMSA

InnerShr

InnerShr, [31:28]

Indicates the innermost shareability domain implemented:

0x1

Implemented with hardware coherency support.

FCSE, [27:24]

Indicates support for 

Fast Context Switch Extension

 (FCSE):

0x0

Not supported.

AuxReg, [23:20]

Indicates support for Auxiliary registers:

0x2

Support for Auxiliary Fault Status Registers (AIFSR and ADFSR) and

Auxiliary Control Register.

TCM, [19:16]

Indicates support for TCMs and associated DMAs:

0x0

Not supported.

ShareLvl, [15:12]

Indicates the number of shareability levels implemented:

0x1

Two levels of shareability implemented.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

174

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

OuterShr, [11:8]

Indicates the outermost shareability domain implemented:

0x1

Implemented with hardware coherency support.

PMSA, [7:4]

Indicates support for a 

Protected Memory System Architecture

 (PMSA):

0x0

Not supported.

VMSA, [3:0]

Indicates support for a 

Virtual Memory System Architecture

 (VMSA).

0x5

Support for:
• VMSAv7, with support for remapping and the Access flag.
• The PXN bit in the Short-descriptor translation table format

descriptors.

• The Long-descriptor translation table format.

Configurations

ID_MMFR0 is architecturally mapped to AArch64 register ID_MMFR0_EL1. See 

3.2.74

ID_MMFR0_EL1, AArch32 Memory Model Feature Register 0, EL1

 on page 330.

There is one copy of this register that is used in both Secure and Non-secure states.

Must be interpreted with ID_MMFR1, ID_MMFR2, ID_MMFR3, and ID_MMFR4. See:

3.1.69 ID_MMFR1, Memory Model Feature Register 1

 on page 175.

3.1.70 ID_MMFR2, Memory Model Feature Register 2

 on page 177.

3.1.71 ID_MMFR3, Memory Model Feature Register 3

 on page 179.

3.1.72 ID_MMFR4, Memory Model Feature Register 4

 on page 181.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.69 ID_MMFR1, Memory Model Feature Register 1

The ID_MMFR1 provides information about the memory model and memory management support

in AArch32.

Bit field descriptions

ID_MMFR1 is a 32-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

175

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-54: ID_MMFR1 bit assignments

31

12 11

8 7

0

BPred

4 3

28 27

2423

20 19

16 15

L1TstCln

L1Uni

L1Hvd

L1UniSW

L1HvdSW

L1UniVA

L1HvdVA

BPred, [31:28]

Indicates branch predictor management requirements:

0x4

For execution correctness, branch predictor requires no flushing at

any time.

L1TstCln, [27:24]

Indicates the supported L1 Data cache test and clean operations, for Harvard or unified

cache implementation:

0x0

None supported.

L1Uni, [23:20]

Indicates the supported entire L1 cache maintenance operations, for a unified cache

implementation:

0x0

None supported.

L1Hvd, [19:16]

Indicates the supported entire L1 cache maintenance operations, for a Harvard cache

implementation:

0x0

None supported.

L1UniSW, [15:12]

Indicates the supported L1 cache line maintenance operations by set/way, for a unified cache

implementation:

0x0

None supported.

L1HvdSW, [11:8]

Indicates the supported L1 cache line maintenance operations by set/way, for a Harvard

cache implementation:

0x0

None supported.

L1UniVA, [7:4]

Indicates the supported L1 cache line maintenance operations by VA, for a unified cache

implementation:

0x0

None supported.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

176

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

L1HvdVA, [3:0]

Indicates the supported L1 cache line maintenance operations by VA, for a Harvard cache

implementation:

0x0

None supported.

Configurations

ID_MMFR1 is architecturally mapped to AArch64 register ID_MMFR1_EL1. See 

3.2.75

ID_MMFR1_EL1, AArch32 Memory Model Feature Register 1, EL1

 on page 332.

There is one copy of this register that is used in both Secure and Non-secure states.

Must be interpreted with ID_MMFR0, ID_MMFR2, ID_MMFR3, and ID_MMFR4. See:

3.1.68 ID_MMFR0, Memory Model Feature Register 0

 on page 174.

3.1.70 ID_MMFR2, Memory Model Feature Register 2

 on page 177.

3.1.71 ID_MMFR3, Memory Model Feature Register 3

 on page 179.

3.1.72 ID_MMFR4, Memory Model Feature Register 4

 on page 181.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.70 ID_MMFR2, Memory Model Feature Register 2

The ID_MMFR2 provides information about the implemented memory model and memory

management support in AArch32.

Bit field descriptions

ID_MMFR2 is a 32-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Figure 3-55: ID_MMFR2 bit assignments

31

12 11

8 7

0

HWAccFlg

4 3

28 27

24 23

20 19

16 15

WFIStall

MemBarr

UniTLB

HvdTLB LL1HvdRng L1HvdBG

L1HvdFG

HWAccFlg, [31:28]

Hardware Access Flag. Indicates support for a Hardware Access flag, as part of the VMSAv7

implementation:

0x0

Not supported.

WFIStall, [27:24]

Wait For Interrupt Stall. Indicates the support for 

Wait For Interrupt

 (WFI) stalling:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

177

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0x1

Support for WFI stalling.

MemBarr, [23:20]

Memory Barrier. Indicates the supported CP15 memory barrier operations.

0x2

Supported CP15 memory barrier operations are:

Data Synchronization Barrier

 (DSB).

Instruction Synchronization Barrier

 (ISB).

Data Memory Barrier

 (DMB).

UniTLB, [19:16]

Unified TLB. Indicates the supported TLB maintenance operations, for a unified TLB

implementation.

0x6

Supported unified TLB maintenance operations are:
• Invalidate all entries in the TLB.
• Invalidate TLB entry by VA.
• Invalidate TLB entries by ASID match.
• Invalidate instruction TLB and data TLB entries by VA All ASID.

This is a shared unified TLB operation.

• Invalidate Hyp mode unified TLB entry by VA.
• Invalidate entire Non-secure PL1 and PL0 unified TLB.
• Invalidate entire Hyp mode unified TLB.

TLBIMVALIS

TLBIMVAALIS

TLBIMVALHIS

TLBIMVAL

TLBIMVAAL

, and

TLBIMVALH

.

TLBIIPAS2IS

TLBIIPAS2LIS

TLBIIPAS2

, and 

TLBIIPAS2L

.

HvdTLB, [15:12]

Harvard TLB. Indicates the supported TLB maintenance operations, for a Harvard TLB

implementation:

0x0

Not supported.

LL1HvdRng, [11:8]

L1 Harvard cache Range. Indicates the supported L1 cache maintenance range operations,

for a Harvard cache implementation:

0x0

Not supported.

L1HvdBG, [7:4]

L1 Harvard cache Background fetch. Indicates the supported L1 cache background prefetch

operations, for a Harvard cache implementation:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

178

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0x0

Not supported.

L1HvdFG, [3:0]

L1 Harvard cache Foreground fetch. Indicates the supported L1 cache foreground prefetch

operations, for a Harvard cache implementation:

0x0

Not supported.

Configurations

ID_MMFR2 is architecturally mapped to AArch64 register ID_MMFR2_EL1. See 

3.2.76

ID_MMFR2_EL1, AArch32 Memory Model Feature Register 2, EL1

 on page 334.

There is one copy of this register that is used in both Secure and Non-secure states.

Must be interpreted with ID_MMFR0, ID_MMFR1, ID_MMFR3, and ID_MMFR4. See:

3.1.68 ID_MMFR0, Memory Model Feature Register 0

 on page 174.

3.1.69 ID_MMFR1, Memory Model Feature Register 1

 on page 175.

3.1.71 ID_MMFR3, Memory Model Feature Register 3

 on page 179.

3.1.72 ID_MMFR4, Memory Model Feature Register 4

 on page 181.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.71 ID_MMFR3, Memory Model Feature Register 3

The ID_MMFR3 provides information about the memory model and memory management support

in AArch32.

Bit field descriptions

ID_MMFR3 is a 32-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Figure 3-56: ID_MMFR3 bit assignments

31

12 11

8 7

0

4 3

28 27

24 23

20 19

16 15

PAN

CohWalk

CMemSz

Supersec

MaintBcst

BPMaint

CMaintSW CMaintVA

Supersec, [31:28]

Supersections. Indicates support for supersections:

0x0

Supersections supported.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

179

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

CMemSz, [27:24]

Cached Memory Size. Indicates the size of physical memory supported by the core caches:

0x2

1TByte, corresponding to a 40-bit physical address range.

CohWalk, [23:20]

Coherent walk. Indicates whether translation table updates require a clean to the point of

unification:

0x1

Updates to the translation tables do not require a clean to the point

of unification to ensure visibility by subsequent translation table

walks.

PAN, [19:16]

Privileged Access Never. Indicates support for the PAN bit in CPSR, SPSR, and DSPSR in

AArch32.

0x2

• PAN supported.
• ATS1CPRP and ATS1CPWP supported.

MaintBcst, [15:12]

Maintenance broadcast. Indicates whether cache, TLB, and branch predictor operations are

broadcast:

0x2

Cache, TLB, and branch predictor operations affect structures

according to shareability and defined behavior of instructions.

BPMaint, [11:8]

Branch predictor maintenance. Indicates the supported branch predictor maintenance

operations.

0x2

Supported branch predictor maintenance operations are:
• Invalidate all branch predictors.
• Invalidate branch predictors by 

Virtual Address

 (VA).

CMaintSW, [7:4]

Cache maintenance by set/way. Indicates the supported cache maintenance operations by

set/way.

0x1

Supported hierarchical cache maintenance operations by set/way

are:
• Invalidate data cache by set/way.
• Clean data cache by set/way.
• Clean and invalidate data cache by set/way.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

180

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

CMaintVA, [3:0]

Cache maintenance by VA. Indicates the supported cache maintenance operations by VA.

0x1

Supported hierarchical cache maintenance operations by VA are:
• Invalidate data cache by VA.
• Clean data cache by VA.
• Clean and invalidate data cache by VA.
• Invalidate instruction cache by VA.
• Invalidate all instruction cache entries.

Configurations

ID_MMFR3 is architecturally mapped to AArch64 register ID_MMFR3_EL1. See 

3.2.77

ID_MMFR3_EL1, AArch32 Memory Model Feature Register 3, EL1

 on page 337.

There is one copy of this register that is used in both Secure and Non-secure states.

Must be interpreted with ID_MMFR0, ID_MMFR1, ID_MMFR2, and ID_MMFR4. See:

3.1.68 ID_MMFR0, Memory Model Feature Register 0

 on page 174.

3.1.69 ID_MMFR1, Memory Model Feature Register 1

 on page 175.

3.1.70 ID_MMFR2, Memory Model Feature Register 2

 on page 177.

3.1.72 ID_MMFR4, Memory Model Feature Register 4

 on page 181.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.72 ID_MMFR4, Memory Model Feature Register 4

The ID_MMFR4 provides information about the memory model and memory management support

in AArch32.

Bit field descriptions

ID_MMFR4 is a 32-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Figure 3-57: ID_MMFR4 bit assignments

31

8 7

0

4 3

RAZ

AC2

SpecSEI

HPDS

CNP

LSM

XNX

11

12

15

16

19

20

23

24

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

181

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

RAZ, [31:24]

 

Read-as-zero.

LSM, [23:20]

Load/Store Multiple. Indicates whether adjacent loads or stores can be combined. The value

is:

0x0

LSMAOE and nTLSMD bit not supported.

HPDS, [19:16]

Hierarchical Disables. Enables an operating system or hypervisor to hand over up to 4 bits of

the last level page table descriptor (bits[62:59] of the page table entry) for use by hardware

for 

IMPLEMENTATION DEFINED

 usage. The value is:

0x2

Hierarchical Permission Disables and Hardware allocation of

bits[62:59] supported.

CNP, [15:12]

Common Not Private. Indicates support for selective sharing of TLB entries across multiple

cores. The value is:

0x1

CnP bit supported.

XNX, [11:8]

Execute Never. Indicates whether the stage 2 translation tables allows the stage 2 control of

whether memory is executable at EL1 independent of whether memory is executable at EL0.

The value is:

0x1

EL0/EL1 execute control distinction at stage2 bit supported.

AC2, [7:4]

Indicates the extension of the ACTLR and HACTLR registers using ACTLR2 and HACTLR2.

The value is:

0x1

ACTLR2 and HACTLR2 are implemented.

SpecSEI, [3:0]

Describes whether the core can generate SError interrupt exceptions from speculative reads

of memory, including speculative instruction fetches. The value is:

0x0

The core never generates an SError interrupt due to an external

abort on a speculative read.

Configurations

ID_MMFR4 is architecturally mapped to AArch64 register ID_MMFR4_EL1. See 

3.2.78

ID_MMFR4_EL1, AArch32 Memory Model Feature Register 4, EL1

 on page 339.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

182

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

There is one copy of this register that is used in both Secure and Non-secure states.

Must be interpreted with ID_MMFR0, ID_MMFR1, ID_MMFR2, and ID_MMFR3. See:

3.1.68 ID_MMFR0, Memory Model Feature Register 0

 on page 174.

3.1.69 ID_MMFR1, Memory Model Feature Register 1

 on page 175.

3.1.70 ID_MMFR2, Memory Model Feature Register 2

 on page 177.

3.1.71 ID_MMFR3, Memory Model Feature Register 3

 on page 179.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.73 ID_PFR0, Processor Feature Register 0

The ID_PFR0 provides top-level information about the instruction sets supported by the core in

AArch32.

Bit field descriptions

ID_PFR0 is a 32-bit register, and must be interpreted with ID_PFR1. It is part of the Identification

registers functional group.

This register is Read Only.

Figure 3-58: ID_PFR0 bit assignments

31

12 11

8 7

0

State2

State1

16 15

4 3

State0

State3

28

RAS

27

RES

0

RAS, [31:28]

RAS extension version. The value is:

0x1

Version 1 of the RAS extension is present.

RES0, [27:16]

RES0

Reserved.

State3, [15:12]

Indicates support for 

Thumb Execution Environment

 (T32EE) instruction set. This value is:

0x0

Core does not support the T32EE instruction set.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

183

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

State2, [11:8]

Indicates support for Jazelle. This value is:

0x1

Core supports trivial implementation of Jazelle.

State1, [7:4]

Indicates support for T32 instruction set. This value is:

0x3

Core supports T32 encoding after the introduction of Thumb-2

technology, and for all 16-bit and 32-bit T32 basic instructions.

State0, [3:0]

Indicates support for A32 instruction set. This value is:

0x1

A32 instruction set implemented.

Configurations

ID_PFR0 is architecturally mapped to AArch64 register ID_PFR0_EL1. See 

3.2.79

ID_PFR0_EL1, AArch32 Processor Feature Register 0, EL1

 on page 341.

There is one copy of this register that is used in both Secure and Non-secure states.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.74 ID_PFR1, Processor Feature Register 1

The ID_PFR1 provides information about the programmers model and architecture extensions

supported by the core.

Bit field descriptions

ID_PFR1 is a 32-bit register, and must be interpreted with ID_PFR0. It is part of the Identification

registers functional group.

This register is Read Only.

Figure 3-59: ID_PFR1 bit assignments

31

12 11

8 7

0

GIC CPU

4 3

16 15

Virtualization

20 19

27

28

GenTimer

MProgMod

Security

ProgMod

RES

0

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

184

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

GIC CPU, [31:28]

GIC CPU support:

0x0

GIC CPU interface is disabled, GICCDISABLE is HIGH.

0x1

GIC CPU interface is enabled, GICCDISABLE is LOW.

RES0, [27:20]

RES0

Reserved.

GenTimer, [19:16]

Generic Timer support:

0x1

Generic Timer is implemented.

Virtualization, [15:12]

Indicates support for Virtualization:

0x1

The following Virtualization is implemented:
• The SCR.SIF bit.
• The modifications to the SCR.AW and SCR.FW bits described in

the Virtualization Extensions.

• The MSR (Banked register) and MRS (Banked register)

instructions.

• The ERET instruction.
• EL2, Hyp mode, the HVC instruction implemented.

MProgMod, [11:8]

M profile programmers model support:

0x0

Not supported.

Security, [7:4]

Security support:

0x1

The following Security items are implemented:
• The VBAR register.
• The TTBCR.PD0 and TTBCR.PD1 bits.
• The ability to access Secure or Non-secure physical memory is

supported.

• EL3, Monitor mode, the SMC instruction implemented.

ProgMod, [3:0]

Indicates support for the standard programmers model for Armv4 and later.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

185

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Model must support User, FIQ, IRQ, Supervisor, Abort, Undefined and System modes:

0x1

Supported.

Configurations

ID_PFR1 is architecturally mapped to AArch64 register ID_PFR1_EL1. See 

3.2.80

ID_PFR1_EL1, AArch32 Processor Feature Register 1, EL1

 on page 342.

There is one copy of this register that is used in both Secure and Non-secure states.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.75 IFSR, Instruction Fault Status Register

The IFSR holds status information about the last instruction fault.

Bit field descriptions

IFSR is a 32-bit register, and is part of the Exception and fault handling registers functional group.

There are two formats for this register. The current translation table format determines which

format of the register is used.

3.1.75.1 IFSR with Short-descriptor translation table format

 on page 186.

3.1.75.2 IFSR with Long-descriptor translation table format

 on page 187.

Configurations

IFSR (NS) is architecturally mapped to AArch64 register IFSR32_EL2. See 

3.2.82 IFSR32_EL2,

Instruction Fault Status Register, EL2

 on page 345.

If EL3 is using AArch32, there are separate Secure and Non-secure instances of this register.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.75.1 IFSR with Short-descriptor translation table format

IFSR has a specific format when using the Short-descriptor translation table format.

The following figure shows the IFSR bit assignments when using the Short-descriptor translation

table format.

When TTBCR.EAE==0:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

186

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-60: IFSR bit assignments for Short-descriptor translation table format

31

13 12 11 10 9 8

4 3

0

ExT

FS[4]

FS[3:0]

17 16 15

LPAE

FnV

res0

ExT, [12]

External abort type.

 

Read as zero.

For aborts other than external aborts, this bit always returns 0.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.75.2 IFSR with Long-descriptor translation table format

IFSR has a specific format when using the Long-descriptor translation table format.

The following figure shows the IFSR bit assignments when using the Long-descriptor translation

table format.

When TTBCR.EAE==1:

Figure 3-61: IFSR bit assignments for Long-descriptor translation table format

31

13 12 11 10 9 8

5

0

ExT

Status

6

17 16 15

FnV

LPAE

RES

0

ExT, [12]

External abort type.

 

Read as zero.

For aborts other than external aborts, this bit always returns 0.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

187

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.76 MIDR, Main ID Register

The MIDR provides identification information for the core, including an implementer code for the

device and a device ID number.

Bit field descriptions

MIDR is a 32-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Figure 3-62: MIDR bit assignments

Variant

Implementer

31

23

20 19

16 15

4 3

0

Architecture

PartNum

Revision

24

Implementer, [31:24]

Indicates the implementer code. This value is:

0x41

ASCII character 'A' - implementer is Arm Limited.

Variant, [23:20]

Indicates the variant number of the core. This is the major revision number 

n

 in the 

rn

 part of

the 

rnpm

 description of the product revision status. This value is:

0x3

r2p0.

Architecture, [19:16]

Indicates the architecture code. This value is:

0xF

Defined by ID registers.

PartNum, [15:4]

Indicates the primary part number. This value is:

0xD05

Cortex

®

-A55 core.

Revision, [3:0]

Indicates the minor revision number of the core. This is the minor revision number 

m

 in the

pm

 part of the 

rnpm

 description of the product revision status. This value is:

0x0

r2p0.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

188

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Configurations

MIDR is:
• Architecturally mapped to the AArch64 MIDR_EL1 register. See 

3.2.89 MIDR_EL1, Main

ID Register, EL1

 on page 354.

• Architecturally mapped to external MIDR_EL1 register.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.77 MPIDR, Multiprocessor Affinity Register

The MPIDR provides an additional core identification mechanism for scheduling purposes in a

cluster. EDDEVAFF0 is a read-only copy of MPIDR accessible from the external debug interface.

Bit field descriptions

MPIDR is a 32-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Figure 3-63: MPIDR bit assignments

31

0

30

U

29

25 24 23

Aff2

16 15

Aff1

8

Aff0

7

MT

RES

0

RES

1

RES1, [31]

RES1

.

U, [30]

Indicates a uniprocessor system, as distinct from core 0 in a multiprocessor system. This value

is:

0b0

Core is part of a multiprocessor system.

RES0, [29:25]

RES0

Reserved.

MT, [24]

Indicates whether the lowest level of affinity consists of logical cores that are implemented

using a multi-threading type approach. This value is:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

189

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0b1

Affinity 0 represents threads. However, Cortex

®

-A55 is

not multithreaded and so affinity 0 will always be zero. This

allows consistency when in a system with other cores that are

multithreaded.

Aff2, [23:16]

Affinity level 2. This level of affinity identifies different clusters within the system. The value

in this field is equal to the value present on the CLUSTERIDAFF2 configuration signal.

Aff1, [15:8]

Affinity level 1. This level of affinity identifies individual cores within the local DynamIQ

cluster. The value can range from 

0x00

 for core 0, to 

0x07

 for core 7.

Aff0, [7:0]

Affinity level 0. The level identifies individual threads within a multi-threaded core. The

Cortex

®

-A55 core is single-threaded, so this field has the value 

0x00

.

Configurations

The MPIDR is:
• Architecturally mapped to the AArch64 MPIDR_EL1[31:0] register. See 

3.2.90

MPIDR_EL1, Multiprocessor Affinity Register, EL1

 on page 355.

• Mapped to external EDDEVAFF0 register.

There is one copy of this register that is used in both Secure and Non-secure states.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.78 PAR, Physical Address Register

The PAR returns the 

output address

 (OA) from an address translation instruction that executed

successfully, or fault information if the instruction did not execute successfully.

Configuration Details

PAR is a 64-bit register that can also be accessed as a 32-bit value. If it is accessed as a 32-bit

register, accesses read and write bits[31:0] and do not modify bits[63:32].

PAR is part of the Address translation instructions functional group.

Configurations

AArch32 System register PAR is architecturally mapped to AArch64 System register

PAR_EL1. See 

3.2.91 PAR_EL1, Physical Address Register, EL1

 on page 357.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

190

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.78.1 PAR with Short-descriptor translation table format

PAR details when the PE is using the Short-descriptor translation table format.

F, [0]

Indicates whether the instruction performed a successful address translation.

0

Address translation completed successfully.

1

Address translation aborted.

Bit field descriptions, PAR.F is 0

The following figure shows the PAR bit assignments when PAR.F is 0.

Figure 3-64: PAR bit assignments, PAR.F is 0

31

0

5

6

7

1

2

12

PA

3

4

LPAE

NS

8

9

10

11

NOS

F

SS

Inner[2:0]

Outer[1:0]

IMP DEF

SH

PA, [31:12]

Output address. The output address (OA) corresponding to the supplied input address. This

field returns address bits[31:12].

LPAE, [11]

0

Short-descriptor translation table format used. This means that the

PAR returned a 32-bit value.

NOS, [10]

Not Outer Shareable. When the returned value of PAR.SH is 1, indicates the Shareability

attribute for the physical memory region:

0

Memory region is Outer Shareable.

1

Memory region is Inner Shareable.

NS, [9]

Non-secure. The NS attribute for a translation table entry from a Secure translation regime.

For a result from a Secure translation regime, this bit reflects the Security state of the

physical address space of the translation. This means it reflects the effect of the NSTable bits

of earlier levels of the translation table walk if those NSTable bits effect the translation.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

191

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

IMP DEF, [8]

IMPLEMENTATION DEFINED

. Bit[8] is 

RES0

. See the 

Arm

®

 Architecture Reference Manual for A-

profile architecture

 for more information.

SH, [7]

Shareability. Indicates whether the physical memory region is Non-shareable:

0

Memory is Non-shareable.

1

Memory is shareable, and PAR.NOS indicates whether the region is

Outer Shareable or Inner Shareable.

Inner[2:0], [6:4]

Inner cacheability attribute for the region. Permitted values are:

000

Non-cacheable.

001

Device-nGnRnE.

011

Device-nGnRE.

101

Write-Back, Write-Allocate.

110

Write-Through.

111

Write-Back, no Write-Allocate.

The values 010 and 100 are reserved.

Outer[1:0], [3:2]

00

Non-cacheable.

01

Write-Back, Write-Allocate.

10

Write-Through, no Write-Allocate.

11

Write-Back, no Write-Allocate.

SS, [1]

Supersection. Used to indicate if the result is a Supersection:

0

Result is not a Supersection. PAR[31:12] contains OA[31:12].

1

Result is a Supersection, and:
• PAR[31:24] contains OA[31:24].
• PAR[23:16] contains OA[39:32].
• PAR[15:12] contains 

0b0000

.

If an implementation supports less than 40 bits of physical address,

the bits in the PAR field that correspond to physical address bits that

are not implemented are 

UNKNOWN

F, [0]

Indicates whether the instruction performed a successful address translation.

0

Address translation completed successfully.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

192

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Bit field descriptions, PAR.F is 1

The following figure shows the PAR bit assignments when PAR.F is 1.

Figure 3-65: PAR bit assignments, PAR.F is 1

31

0

5

6

7

1

2

12

3

4

LPAE

8

9

10

11

F

FS

RES

0

RES0, [31:12]

RES0

Reserved.

LPAE, [11]

0

Short-descriptor translation table format used. This means that the

PAR returned a 32-bit value.

RES0, [10:7]

RES0

Reserved.

FS, [6:1]

Fault status bits. Bits [12,10,3:0] from the DFSR, indicating the source of the abort.

F, [0]

Indicates whether the instruction performed a successful address translation.

1

Address translation aborted.

3.1.78.2 PAR with Long-descriptor translation table format

PAR details when the PE is using the Long-descriptor translation table format.

F, [0]

Indicates whether the instruction performed a successful address translation.

0

Address translation completed successfully.

1

Address translation aborted.

Bit field descriptions, PAR.F is 0

The following figure shows the PAR bit assignments when PAR.F is 0.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

193

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-66: PAR bit assignments, PAR.F is 0

63

0

6

7

1

12

PA

LPAE

NS

8

9

10

11

IMP DEF

F

SH

39

40

55

56

ATTR

res0

ATR, [63:56]

Memory attributes for the returned output address. This field uses the same encoding as the

Attr<n> fields in MAIR0 and MAIR1.

RES0, [55:40]

RES0

Reserved.

PA, [39:12]

Output address. The output address (OA) corresponding to the supplied input address. This

field returns address bits[31:12].

LPAE, [11]

1

Long-descriptor translation table format used. This means that the

PAR returned a 64-bit value.

IMP DEF, [10]

IMPLEMENTATION DEFINED

.

NS, [9]

Non-secure. The NS attribute for a translation table entry from a Secure translation regime.

For a result from a Secure translation regime, this bit reflects the Security state of the

physical address space of the translation. This means it reflects the effect of the NSTable bits

of earlier levels of the translation table walk if those NSTable bits effect the translation.

For a result from a Non-secure translation regime, this bit is UNKNOWN.

SH, [8:7]

Shareability attribute, for the returned output address. Permitted values are:

00

Non-shareable.

10

Outer Shareable.

11

Inner Shareable.

The value 01 is reserved.

RES0, [6:1]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

194

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

F, [0]

Indicates whether the instruction performed a successful address translation.

0

Address translation completed successfully.

Bit field descriptions, PAR.F is 1

The following figure shows the PAR bit assignments when PAR.F is 1.

Figure 3-67: PAR bit assignments, PAR.F is 1

63

0

6

7

1

12

LPAE

S2WLK

8

9

10

11

FSTAGE

F

FST

RES

0

RES0, [63:12]

RES0

Reserved.

LPAE, [11]

1

Long-descriptor translation table format used. This means the PAR

returned a 64-bit value.

RES0, [10]

RES0

Reserved.

FSTAGE, [9]

Indicates the translation stage at which the translation aborted:

0

Translation aborted because of a fault in the stage 1 translation.

1

Translation aborted because of a fault in the stage 2 translation.

S2WLK, [8]

If this bit is set to 1, it indicates the translation aborted because of a stage 2 fault during a

stage 1 translation table walk.

RES0, [7]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

195

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

FST, [6:1]

Fault status field. Values are as in the DFSR.STATUS and IFSR.STATUS fields when using the

Long-descriptor translation table format.

F, [0]

Indicates whether the instruction performed a successful address translation.

1

Address translation aborted.

3.1.79 REVIDR, Revision ID Register

The REVIDR provides revision information, additional to that in the MIDR, which identifies minor

fixes (errata) which may be present in a specific implementation of the Cortex

®

-A55 core.

Bit field descriptions

REVIDR is a 32-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Figure 3-68: REVIDR bit assignments

31

0

IMPLEMENTATION DEFINED

IMPLEMENTATION DEFINED, [31:0]

 

IMPLEMENTATION DEFINED

.

Configurations

AArch32 System register REVIDR is architecturally mapped to AArch64 System register

REVIDR_EL1. See 

3.2.92 REVIDR_EL1, Revision ID Register, EL1

 on page 358.

There is one instance of this register that is used in both Secure and Non-secure states.

3.1.80 SCR, Secure Configuration Register

The SCR defines the configuration of the current Security state when EL3 is implemented and can

use AArch32.

It specifies:
• The Security state, either Secure or Non-secure.
• What mode the core branches to if an IRQ, FIQ, or External Abort occurs.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

196

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

• Whether the CPSR.F or CPSR.A bits can be modified when SCR.NS==1.

Bit field descriptions

SCR is a 32-bit register.

Figure 3-69: SCR bit assignments

0

1

31

RES

0

4

5

2

3

7 6

8

9

10

11

12

13

14

TWE

TWI

NS
IRQ
FIQ
EA
FW
AW
nET
SCD
HCE
SIF

This register resets to value 

0x00000000

.

Configurations

This register is only accessible in Secure state.

AArch32 System register SCR can be mapped to AArch64 System register SCR_EL3, but this

is not architecturally mandated.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.81 SCTLR, System Control Register

The SCTLR provides the top-level control of the system, including its memory system.

Bit field descriptions

SCTLR is a 32-bit register, and is part of the Other system control registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

197

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-70: SCTLR bit assignments

31 30 29 28 27 26 25 24

14 13 12 11

3 2 1 0

M

I

V

C A

EE

TRE

AFE

TE

18

21 20 19

UWXN

WXN

9

17 16 15

nTWE

nTWI

8 7 6 5 4

CP15BEN
UNK

ITD

SED

23 22

10

RES

0

RES

1

nTLSMD
LSMAOE

SPAN

TE, [30]

T32 Exception enable.

This field resets to a value determined by the input configuration signal cfgte_i.

AFE, [29]

Access Flag Enable.

This field resets to 0.

TRE, [28]

TEX remap enable.

This field resets to 0.

EE, [25]

Exception Endianness bit.

This field resets to a value determined by the input configuration signal cfgend_i.

SPAN, [23]

This field resets to 1.

UWXN, [20]

Unprivileged write permission implies PL1 XN (Execute-never).

This field resets to 0.

WXN, [19]

Write permission implies XN (Execute-never).

This field resets to 0.

nTWE, [18]

Traps PL0 execution of WFE instructions to Undefined mode.

This field resets to 1.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

198

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

nTWI, [16]

Traps PL0 execution of WFI instructions to Undefined mode.

This field resets to 1.

V, [13]

Vectors bit.

This field resets to a value determined by the input configuration signal vinithi_i.

I, [12]

Instruction access Cacheability control, for accesses at EL1 and EL0.

This field resets to 0.

SED, [8]

SETEND instruction disable. Disables SETEND instructions at PL0 and PL1:

0

SETEND instruction execution is enabled at PL0 and PL1.

1

SETEND instructions are 

UNDEFINED

 at PL0 and PL1.

This field resets to 0.

ITD, [7]

RES0

All IT instruction functionality is always implemented in PL0, PL1 and

enabled at PL2.

UNK, [6]

Writes to this bit are 

IGNORED

. Reads of this bit return an 

UNKNOWN

 value.

CP15BEN, [5]

System instruction memory barrier enable. Enables accesses to the DMB, DSB, and ISB

System instructions in the (coproc==1111) encoding space from PL1 and PL0.

0

PL0 and PL1 execution of the CP15DMB, CP15DSB, and CP15ISB

instructions is UNDEFINED.

1

PL0 and PL1 execution of the CP15DMB, CP15DSB, and CP15ISB

instructions is enabled.

This field resets to 1.

LSMAOE, [4]

Load/Store Multiple Atomicity and Ordering Enable.

RES1

This bit is not controllable. The ordering and interrupt behavior of

Load/Store Multiple is as defined for Arm

®

v8‑A.

nTLSMD, [3]

no Trap Load/Store Multiple to Device-nGRE/Device-nGnRE/Device-nGnRnE memory.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

199

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

RES1

This bit is not controllable. Load/Store Multiple to memory marked

at stage1 as Device-nGRE/Device-nGnRE/Device-nGnRnE memory

does not generate a stage 1 alignment fault as a result of this

mechanism.

C, [2]

Cacheability control, for data accesses at EL1 and EL0.

This field resets to 0.

A, [1]

Alignment check enable.

This field resets to 0.

M, [0]

MMU enable for EL1 and EL0 stage 1 address translation.

This field resets to 0.

Configurations

SCTLR (NS) is architecturally mapped to AArch64 register SCTLR_EL1. See 

3.2.94

SCTLR_EL1, System Control Register, EL1

 on page 360.

If EL3 is using AArch32, there are separate Secure and Non-secure instances of this register.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.82 SDCR, Secure Debug Control Register

The SDCR Controls debug and performance monitors functionality in Secure state.

Bit field descriptions

SDCR is a 32-bit register, and is part of:
• The Debug registers functional group.
• The Security registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

200

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-71: SDCR bit assignments

31

14 13

0

18

21 20 19

EPMAD

SPD

17 16 15

SPME

EDAD

22

RES

0

EPMAD, [21]

External debugger access to Performance Monitors registers disabled. This disables access to

these registers by an external debugger:

0b0

Access to Performance Monitors registers from external debugger is

permitted. This is the reset value.

0b1

Access to Performance Monitors registers from external debugger is

disabled, unless overridden by authentication interface.

EDAD, [20]

External debugger access to breakpoint and watchpoint registers disabled. This disables

access to these registers by an external debugger:

0b0

Access to breakpoint and watchpoint registers from external

debugger is permitted. This is the reset value.

0b1

Access to breakpoint and watchpoint registers from external

debugger is disabled, unless overridden by authentication interface.

SPME, [17]

Secure performance monitors enable. This allows event counting in Secure state:

0b0

Event counting prohibited in Secure state. This is the reset value.

0b1

Event counting allowed in Secure state.

SPD, [15:14]

AArch32 Secure privileged debug. Enables or disables debug exceptions from Secure state,

other than Breakpoint Instruction exceptions. Valid values for this field are:

0b00

Legacy mode. Debug exceptions from Secure EL1 are enabled by the

authentication interface. This is the reset value.

0b10

Secure privileged debug disabled. Debug exceptions from Secure EL1

are disabled.

0b11

Secure privileged debug enabled. Debug exceptions from Secure EL1

are enabled.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

201

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Configurations

SDCR is mapped to AArch64 register MDCR_EL3. See 

3.2.88 MDCR_EL3, Monitor Debug

Configuration Register, EL3

 on page 352.

The SDCR is only accessible in Secure state.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.83 TTBCR, Translation Table Base Control Register

The TTBCR determines which of the translation table base registers defines the base address for a

translation table walk required for the stage 1 translation of a memory access from any mode other

than Hyp mode.

Also controls the translation table format and, when using the Long-descriptor translation table

format, holds cacheability and shareability information.

Bit field descriptions

TTBCR is a 32-bit register, and is part of the Virtual memory control registers functional group.

There are two formats for this register. TTBCR.EAE determines which format of the register is

used.

3.1.83.1 TTBCR with Short-descriptor translation table format

 on page 202.

3.1.83.2 TTBCR with Long-descriptor translation table format

 on page 204.

Configurations

TTBCR (NS) is architecturally mapped to AArch64 register TCR_EL1[31:0]. See 

3.2.97

TCR_EL1, Translation Control Register, EL1

 on page 363.

TTBCR (S) is architecturally mapped to AArch64 register TCR_EL3[31:0]. See 

3.2.99

TCR_EL3, Translation Control Register, EL3

 on page 368.

If EL3 is using AArch32, there are separate Secure and Non-secure instances of this register.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.83.1 TTBCR with Short-descriptor translation table format

TTBCR has a specific format when using the Short-descriptor translation table format. TTBCR.EAE

determines which format of the register is in use.

The following figure shows the TTBCR bit assignments when TTBCR.EAE is 0.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

202

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-72: TTBCR bit assignments, TTBCR.EAE is 0

31 30

6 5 4 3 2

0

N

PD1

EAE

PD0

RES

0

EAE, [31]

Extended Address Enable.

0b0

Use the 32-bit translation system, with the Short-descriptor

translation table format.

RES0, [30:6]

RES0

Reserved.

PD1, [5]

Translation table walk disable for translations using TTBR1. This bit controls whether a

translation table walk is performed on a TLB miss, for an address that is translated using

TTBR1. The possible values are:

0b0

Perform translation table walks using TTBR1.

0b1

A TLB miss on an address that is translated using TTBR1 generates a

Translation fault. No translation table walk is performed.

PD0, [4]

Translation table walk disable for translations using TTBR0. This bit controls whether a

translation table walk is performed on a TLB miss for an address that is translated using

TTBR0. The possible values are:

0b0

Perform translation table walks using TTBR0.

0b1

A TLB miss on an address that is translated using TTBR0 generates a

Translation fault. No translation table walk is performed.

RES0, [3]

RES0

Reserved.

N, [2:0]

Indicate the width of the base address held in TTBR0. In TTBR0, the base address field is

bits[31:14-N]. The value of N also determines:
• Whether TTBR0 or TTBR1 is used as the base address for translation table walks.
• The size of the translation table pointed to by TTBR0.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

203

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

N can take any value from 0 to 7, that is, from 

0b000

 to 

0b111

.

When N has its reset value of 0, the translation table base is compatible with Armv5 and

Arm

®

v6.

Resets to 0.

3.1.83.2 TTBCR with Long-descriptor translation table format

TTBCR has a specific format when using the Long-descriptor translation table format. TTBCR.EAE

determines which format of the register is in use.

The following figure shows the TTBCR bit assignments when TTBCR.EAE is 1.

Figure 3-73: TTBCR bit assignments, TTBCR.EAE is 1

31 30 29 28 27 26 25 24 23 22 21

19 18

16 15 14 13 12 11 10 9 8 7 6

3 2

SH1

A1

T1SZ

SH0

T0SZ

EAE

EPD0

0

ORGN1

IRGN1

EPD1

IRGN0
ORGN0

RES

0

EAE, [31]

Extended Address Enable:

0b1

Use the VMSAv8-32 translation system, with the Long-descriptor

translation table format.

RES0, [30]

RES0

Reserved.

SH1, [29:28]

Shareability attribute for memory associated with translation table walks using TTBR1:

0b00

Non-shareable.

0b10

Outer Shareable.

0b11

Inner Shareable.

Other values are reserved.

Resets to 0.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

204

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

ORGN1, [27:26]

Outer cacheability attribute for memory associated with translation table walks using TTBR1:

0b00

Normal memory, Outer Non-cacheable.

0b01

Normal memory, Outer Write-Back Write-Allocate Cacheable.

0b10

Normal memory, Outer Write-Through Cacheable.

0b11

Normal memory, Outer Write-Back no Write-Allocate Cacheable.

Resets to 0.

IRGN1, [25:24]

Inner cacheability attribute for memory associated with translation table walks using TTBR1:

0b00

Normal memory, Inner Non-cacheable.

0b01

Normal memory, Inner Write-Back Write-Allocate Cacheable.

0b10

Normal memory, Inner Write-Through Cacheable.

0b11

Normal memory, Inner Write-Back no Write-Allocate Cacheable.

Resets to 0.

EPD1, [23]

Translation table walk disable for translations using TTBR1. This bit controls whether a

translation table walk is performed on a TLB miss, for an address that is translated using

TTBR1:

0b0

Perform translation table walks using TTBR1.

0b1

A TLB miss on an address that is translated using TTBR1 generates a

Translation fault. No translation table walk is performed.

A1, [22]

Selects whether TTBR0 or TTBR1 defines the ASID:

0b0

TTBR0.ASID defines the ASID.

0b1

TTBR1.ASID defines the ASID.

RES0, [21:19]

RES0

Reserved.

T1SZ, [18:16]

The size offset of the memory region addressed by TTBR1. The region size is 2

32-T1SZ

 bytes.

Resets to 0.

RES0, [15:14]

RES0

Reserved.

SH0, [13:12]

Shareability attribute for memory associated with translation table walks using TTBR0:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

205

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0b00

Non-shareable.

0b10

Outer Shareable.

0b11

Inner Shareable.

Other values are reserved.

Resets to 0.

ORGN0, [11:10]

Outer cacheability attribute for memory associated with translation table walks using TTBR0:

0b00

Normal memory, Outer Non-cacheable.

0b01

Normal memory, Outer Write-Back Write-Allocate Cacheable.

0b10

Normal memory, Outer Write-Through Cacheable.

0b11

Normal memory, Outer Write-Back no Write-Allocate Cacheable.

Resets to 0.

IRGN0, [9:8]

Inner cacheability attribute for memory associated with translation table walks using TTBR0:

0b00

Normal memory, Inner Non-cacheable.

0b01

Normal memory, Inner Write-Back Write-Allocate Cacheable.

0b10

Normal memory, Inner Write-Through Cacheable.

0b11

Normal memory, Inner Write-Back no Write-Allocate Cacheable.

Resets to 0.

EPD0, [7]

Translation table walk disable for translations using TTBR0. This bit controls whether a

translation table walk is performed on a TLB miss, for an address that is translated using

TTBR0:

0b0

Perform translation table walks using TTBR0.

0b1

A TLB miss on an address that is translated using TTBR0 generates a

Translation fault. No translation table walk is performed.

RES0, [6:3]

RES0

Reserved.

T0SZ, [2:0]

The size offset of the memory region addressed by TTBR0. The region size is 2

32-T0SZ

 bytes.

Resets to 0.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

206

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.84 TTBCR2, Translation Table Base Control Register 2

The TTBCR2 indicates the hierarchical permission disable and the page based hardware attributes.

Bit field descriptions

TTBCR2 is a 32-bit register, and is part of the Virtual memory control registers functional group.

Figure 3-74: TTBCR2 bit assignments

31

19 18 17 16 15 14 13 12 11 10 9 8

0

HPD0
HPD1

HWU162
HWU161
HWU160
HWU159
HWU062
HWU061
HWU060
HWU059

RES

0

RES0, [31:19]

RES0

Reserved.

HWU162, [18]

Indicates 

IMPLEMENTATION DEFINED

 hardware use of bit[62] of the stage1 translation table

block or level 3 entry. The possible values are:

0

The associated stage 1 translation table entry bit cannot be

interpreted by hardware for an 

IMPLEMENTATION DEFINED

 purpose.

1

The associated stage 1 translation table entry bit can be interpreted

by hardware for an 

IMPLEMENTATION DEFINED

 purpose if the

associated TTBCR2.HPD1 ==1.

HWU161, [17]

Indicates 

IMPLEMENTATION DEFINED

 hardware use of bit[61] of the stage1 translation table

block or level 3 entry. The possible values are:

0

The associated stage 1 translation table entry bit cannot be

interpreted by hardware for an 

IMPLEMENTATION DEFINED

 purpose.

1

The associated stage 1 translation table entry bit can be interpreted

by hardware for an 

IMPLEMENTATION DEFINED

 purpose if the

associated TTBCR2.HPD1 ==1.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

207

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

HWU160, [16]

Indicates 

IMPLEMENTATION DEFINED

 hardware use of bit[60] of the stage1 translation table

block or level 3 entry. The possible values are:

0

The associated stage 1 translation table entry bit cannot be

interpreted by hardware for an 

IMPLEMENTATION DEFINED

 purpose.

1

The associated stage 1 translation table entry bit can be interpreted

by hardware for an 

IMPLEMENTATION DEFINED

 purpose if the

associated TTBCR2.HPD1 ==1.

HWU159, [15]

Indicates 

IMPLEMENTATION DEFINED

 hardware use of bit[59] of the stage1 translation table

block or level 3 entry. The possible values are:

0

The associated stage 1 translation table entry bit cannot be

interpreted by hardware for an 

IMPLEMENTATION DEFINED

 purpose.

1

The associated stage 1 translation table entry bit can be interpreted

by hardware for an 

IMPLEMENTATION DEFINED

 purpose if the

associated TTBCR2.HPD1 ==1.

HWU062, [14]

Indicates 

IMPLEMENTATION DEFINED

 hardware use of bit[62] of the stage1 translation table

block or level 3 entry. The possible values are:

0

The associated stage 1 translation table entry bit cannot be

interpreted by hardware for an 

IMPLEMENTATION DEFINED

 purpose.

1

The associated stage 1 translation table entry bit can be interpreted

by hardware for an 

IMPLEMENTATION DEFINED

 purpose if the

associated TTBCR2.HPD0 ==1.

HWU061, [13]

Indicates 

IMPLEMENTATION DEFINED

 hardware use of bit[61] of the stage1 translation table

block or level 3 entry. The possible values are:

0

The associated stage 1 translation table entry bit cannot be

interpreted by hardware for an 

IMPLEMENTATION DEFINED

 purpose.

1

The associated stage 1 translation table entry bit can be interpreted

by hardware for an 

IMPLEMENTATION DEFINED

 purpose if the

associated TTBCR2.HPD0 ==1.

HWU060, [12]

Indicates 

IMPLEMENTATION DEFINED

 hardware use of bit[60] of the stage1 translation table

block or level 3 entry. The possible values are:

0

The associated stage 1 translation table entry bit cannot be

interpreted by hardware for an 

IMPLEMENTATION DEFINED

 purpose.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

208

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

1

The associated stage 1 translation table entry bit can be interpreted

by hardware for an 

IMPLEMENTATION DEFINED

 purpose if the

associated TTBCR2.HPD0 ==1.

HWU059, [11]

Indicates 

IMPLEMENTATION DEFINED

 hardware use of bit[59] of the stage1 translation table

block or level 3 entry. The possible values are:

0

The associated stage 1 translation table entry bit cannot be

interpreted by hardware for an 

IMPLEMENTATION DEFINED

 purpose.

1

The associated stage 1 translation table entry bit can be interpreted

by hardware for an 

IMPLEMENTATION DEFINED

 purpose if the

associated TTBCR2.HPD0 ==1.

HPD1, [10]

Hierarchical permission disable 1. The possible values are:

0

Hierarchical permissions for the TTBR1 region are enabled.

1

Hierarchical permissions for the TTBR1 region are disabled if

TTBCR.T2E is set to 1. If TTBCR.T2E is set to 0, hierarchical

permissions are enabled.

HPD0, [9]

Hierarchical permission disable 0. The possible values are:

0

Hierarchical permissions for the TTBR0 region are enabled.

1

Hierarchical permissions for the TTBR0 region are disabled if

TTBCR.T2E is set to 1. If TTBCR.T2E is set to 0, hierarchical

permissions are enabled.

RES0, [8:0]

RES0

Reserved.

Configurations

TTBCR2 (NS) is architecturally mapped to AArch64 register TCR_EL1. See

3.2.97 TCR_EL1, Translation Control Register, EL1

 on page 363.

If EL3 is using AArch32, there are separate Secure and Non-secure instances

of this register.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

209

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.85 TTBR0, Translation Table Base Register 0

The TTBR0 holds the base address of translation table 0, and information about the memory it

occupies. This is one of the translation tables for the stage 1 translation of memory accesses from

modes other than Hyp mode.

Usage constraints

TTBR0 is part of the Virtual memory control registers functional group.

There are two formats for this register. TTBCR.EAE determines which format of the register is

used.

3.1.85.1 TTBR0 with Short-descriptor translation table format

 on page 210.

3.1.85.2 TTBR0 with Long-descriptor translation table format

 on page 211.

Configurations

TTBR0 (NS) is architecturally mapped to AArch64 register TTBR0_EL1. See 

3.2.100

TTBR0_EL1, Translation Table Base Register 0, EL1

 on page 370.

TTBR0 (S) is mapped to AArch64 register TTBR0_EL3. See 

3.2.102 TTBR0_EL3, Translation

Table Base Register 0, EL3

 on page 372.

If EL3 is using AArch32, there are separate Secure and Non-secure instances of this register.

Attributes

TTBR0 is a 64-bit register that can also be accessed as a 32-bit value. If it is accessed as a

32-bit register, accesses read and write bits [31:0] and do not modify bits [63:32].

TTBCR.EAE determines which TTBR0 format is used:
• EAE==0:

32-bit format is used. TTBR0[63:32] are ignored.

• EAE==1:

64-bit format is used.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.85.1 TTBR0 with Short-descriptor translation table format

TTBR0 has a specific format when using the Short-descriptor translation table format. TTBCR.EAE

determines which format of the register is in use.

Bit field descriptions

The following figure shows the TTBR0 bit assignments when TTBCR.EAE is 0.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

210

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-75: TTBR0 bit assignments, TTBCR.EAE is 0

31

0

1

2

3

4

5

6

7

IRGN[1]

S

NOS

TTB0

IRGN[0]

RGN

RES

0

IMP, [2]

RES0

Reserved.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.85.2 TTBR0 with Long-descriptor translation table format

TTBR0 has a specific format when using the Long-descriptor translation table format. TTBCR.EAE

determines which format of the register is in use.

The Long-descriptor translation table format for TTBR0 is architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

 for a full description.

Bit field descriptions

The following bit is specific to the implementation:

CnP, [0]

Common not private. The possible values are:

0

CnP is not supported.

1

CnP is supported.

3.1.86 TTBR1, Translation Table Base Register 1

The TTBR1 holds the base address of translation table 1, and information about the memory it

occupies. This is one of the translation tables for the stage 1 translation of memory accesses from

modes other than Hyp mode.

Usage constraints

TTBR1 is part of the Virtual memory control registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

211

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

There are two formats for this register. TTBCR.EAE determines which format of the register is

used.

3.1.86.1 TTBR1 with Short-descriptor translation table format

 on page 212.

3.1.86.2 TTBR1 with Long-descriptor translation table format

 on page 213.

Configurations

TTBR1 (NS) is architecturally mapped to AArch64 register TTBR1_EL1. See 

3.2.103

TTBR1_EL1, Translation Table Base Register 1, EL1

 on page 373.

If EL3 is using AArch64, there is a single instance of this register.

Attributes

TTBR1 is a 64-bit register that can also be accessed as a 32-bit value. If it is accessed as a

32-bit register, accesses read and write bits [31:0] and do not modify bits [63:32].

TTBCR.EAE determines which TTBR1 format is used:
• EAE==0:

32-bit format is used. TTBR1[63:32] are ignored.

• EAE==1:

64-bit format is used.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.86.1 TTBR1 with Short-descriptor translation table format

TTBR1 has a specific format when using the Short-descriptor translation table format. TTBCR.EAE

determines which format of the register is in use.

Bit field descriptions

The following figure shows the TTBR1 bit assignments when TTBCR.EAE is 0.

Figure 3-76: TTBR1 bit assignments, TTBCR.EAE is 0

31

0

1

2

3

4

5

6

7

IRGN[1]

S

NOS

TTB1

IRGN[0]

RGN

RES

0

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

212

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

IMP, [2]

RES0

Reserved.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.86.2 TTBR1 with Long-descriptor translation table format

TTBR1 has a specific format when using the Long-descriptor translation table format. TTBCR.EAE

determines which format of the register is in use.

The Long-descriptor translation table format for TTBR1 is architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

 for a full description.

Bit field descriptions

The following bit is specific to the implementation:

CnP, [0]

Common not private. The possible values are:

0

CnP is not supported.

1

CnP is supported.

3.1.87 VDFSR, Virtual SError Exception Syndrome Register

The VDFSR provides the syndrome value reported to software on taking a virtual SError interrupt

exception.

Bit field descriptions

VDFSR is a 32-bit register, and is part of :
• The Exception and fault handling registers functional group.
• The Virtualization registers functional group.

Figure 3-77: VDFSR bit assignments

AET

31

13 12 11

0

ExT

16 15

RES

0

14

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

213

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

RES0, [31:16]

RES0

Reserved.

AET, [15:14]

Asynchronous Error Type. Describes the state of the core after taking a virtual SError

interrupt exception. Software might use the information in the syndrome registers to

determine what recovery might be possible. The value is:

0b01

Uncorrected error, Unrecoverable error

 (UEU).

RES0, [13]

RES0

Reserved.

ExT, [12]

External abort type.

 

RES0

.

This register is only used for external aborts.

RES0, [11:0]

RES0

Reserved.

Configurations

AArch32 System register VDFSR is architecturally mapped to AArch64 System register

VSESR_EL2 [31:0]. See 

3.2.108 VSESR_EL2, Virtual SError Exception Syndrome Register

 on

page 380.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.88 VDISR, Virtual Deferred Interrupt Status Register

The VDISR records that a virtual SError interrupt has been consumed by an ESB instruction

executed at Non-secure EL1.

Bit field descriptions

VDISR is a 32-bit register, and is part of 

Reliability, Availability, Serviceability

 (RAS) registers

functional group.

There are two formats for this register. The current translation table format determines which

format of the register is used:
• When written at EL1 using short-descriptor format. See 

3.1.88.1 VDISR with Short-descriptor

translation table format

 on page 215

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

214

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

• When written at EL1 using long-descriptor format. See 

3.1.88.2 VDISR with Long-descriptor

translation table format

 on page 216

Configurations

There is one instance of VDISR that is used in both Secure and Non-secure states.

Present only if all of the following are present and is UNDEFINED otherwise:
• EL2 is implemented and using AArch32.
• The RAS extension is implemented.

If the highest implemented Exception level is using AArch64, AArch32 System register VDISR

is architecturally mapped to AArch64 System register VDISR_EL2. See 

3.2.105 VDISR_EL2,

Virtual Deferred Interrupt Status Register, EL2

 on page 375.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.88.1 VDISR with Short-descriptor translation table format

VDISR has a specific format when written at EL1 using the Short-descriptor translation table

format.

Bit field descriptions

The following figure shows the VDISR bit assignments when using the Short-descriptor translation

table format.

Figure 3-78: VDISR bit assignments for Short-descriptor translation table format

31

4 3

16 15 14 13 12 11 10 9 8

0

LPAE
FS(4)

EXT

RES

0

A

AET

FS[3:0]

30

A, [31]

Set to 1 when ESB defers a virtual SError interrupt.

RES0, [30:16]

RES0

Reserved.

AET, [15:14]

Asynchronous Error Type. Describes the state of the PE after taking an asynchronous Data

Abort exception. The value is:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

215

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0b01

Uncorrected error, Unrecoverable error

 (UEU).

RES0, [13]

RES0

Reserved.

EXT, [12]

External Abort Type. This bit is defined as 

RES0

.

RES0, [11]

RES0

Reserved.

FS(4), [10,3:0]

Fault status code. Set to 

0b10110

 when ESB defers a virtual SError interrupt. The value of

this field is:

0b10110

Asynchronous SError interrupt.

LPAE, [9]

Format. The value is:

0b0

Using the Short-descriptor translation table format.

RES0, [8:4]

RES0

Reserved.

3.1.88.2 VDISR with Long-descriptor translation table format

VDISR has a specific format when written at EL1 using the Long-descriptor translation table

format.

Bit field descriptions

The following figure shows the VDISR bit assignments when using the Long-descriptor translation

table format.

Figure 3-79: VDISR bit assignments for Long-descriptor translation table format

31

6 5

16 15 14 13 12 11 10 9 8

0

LPAE

EXT

res0

A

AET

STATUS

30

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

216

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

A, [31]

Set to 1 when ESB defers a virtual SError interrupt.

RES0, [30:16]

RES0

Reserved.

AET, [15:14]

Asynchronous Error Type. Describes the state of the PE after taking an asynchronous Data

Abort exception. The value is:

0b01

Uncorrected error, Unrecoverable error

 (UEU).

RES0, [13]

RES0

Reserved.

EXT, [12]

External Abort Type. This bit is defined as 

RES0

.

RES0, [11]

RES0

Reserved.

RES0, [10]

RES0

Reserved.

LPAE, [9]

Format. The value is:

0b1

Using the Long-descriptor translation table format.

RES0, [8:6]

RES0

Reserved.

STATUS, [5:0]

Fault status code. Set to 

0b010001

 when ESB defers a virtual SError interrupt. The value of

this field is:

0b010001

Asynchronous SError interrupt.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

217

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.1.89 VMPIDR, Virtualization Multiprocessor ID Register

The VMPIDR provides the value of the Virtualization Multiprocessor ID. This is the value returned

by Non-secure EL1 reads of MPIDR.

Configurations

VMPIDR is architecturally mapped to AArch64 register VMPIDR_EL2[31:0].

This register is accessible only at EL2 or EL3.

This register resets to MPIDR value.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.90 VPIDR, Virtualization Processor ID Register

The VPIDR holds the value of the Virtualization Processor ID. This is the value returned by Non-

secure EL1 reads of MIDR.

Configurations

VPIDR is architecturally mapped to AArch64 register VPIDR_EL2.

This register resets to MIDR value.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.91 VTCR, Virtualization Translation Control Register

The VTCR controls the translation table walks required for the stage 2 translation of memory

accesses from Non-secure modes other than Hyp mode. It also holds cacheability and shareability

information for the accesses.

Bit field descriptions

VTCR is a 32-bit register, and is part of:
• The Virtualization registers functional group.
• The Virtual memory control registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

218

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-80: VTCR bit assignments

31

0

5

6

7

8

9

10

11

12

13

14

ORGN0

IRGN0

SH0

SL0

T0SZ

S

3

4

30

RES

0

RES

1

RES1, [31]

RES1

Reserved.

RES0, [30:14]

RES0

Reserved.

SH0, [13:12]

Shareability attribute for memory associated with translation table walks using TTBR0.

0b00

Non-shareable.

0b01

Reserved.

0b10

Outer Shareable.

0b11

Inner Shareable.

ORGN0, [11:10]

Outer cacheability attribute for memory associated with translation table walks using TTBR0.

0b00

Normal memory, Outer Non-cacheable.

0b01

Normal memory, Outer Write-Back Write-Allocate Cacheable.

0b10

Normal memory, Outer Write-Through Cacheable.

0b11

Normal memory, Outer Write-Back no Write-Allocate Cacheable.

IRGN0, [9:8]

Inner cacheability attribute for memory associated with translation table walks using TTBR0.

0b00

Normal memory, Inner Non-cacheable.

0b01

Normal memory, Inner Write-Back Write-Allocate Cacheable.

0b10

Normal memory, Inner Write-Through Cacheable.

0b11

Normal memory, Inner Write-Back no Write-Allocate Cacheable.

SL0, [7:6]

Starting level for translation table walks using VTTBR:

0b00

Start at second level.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

219

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0b01

Start at first level.

RES0, [5]

RES0

Reserved.

S, [4]

Sign extension bit. This bit must be programmed to the value of T0SZ[3]. If it is not, then

the stage 2 T0SZ value is treated as an 

UNKNOWN

 value within the legal range that can be

programmed.

T0SZ, [3:0]

The size offset of the memory region addressed by TTBR0. The region size is 2

32-T0SZ

 bytes.

Configurations

VTCR is architecturally mapped to AArch64 register VTCR_EL2. See 

3.2.109 VTCR_EL2,

Virtualization Translation Control Register, EL2

 on page 382.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.1.92 VTTBR, Virtualization Translation Table Base Register

VTTBR holds the base address of the translation table for the stage 2 translation of memory

accesses from Non-secure modes other than Hyp mode.

Bit field descriptions

VTTBR is a 64-bit register, and is part of:
• The Virtualization registers functional group.
• The Virtual memory control registers functional group.

Figure 3-81: VTTBR bit assignments

63

0

RES

0

1

2

CnP

BADDR

47

48

VMID

CnP, [0]

Common not Private. The reset value is:

0

CnP is not supported.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

220

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Configurations

VTTBR is architecturally mapped to AArch64 register VTTBR_EL1. See 

3.2.110 VTTBR_EL2,

Virtualization Translation Table Base Register, EL2

 on page 383.

This register is used with the VTCR.

Some or all RW fields of this register have defined reset values. These apply only if the core

resets into EL2 with EL2 using AArch32, or into EL3 with EL3 using AArch32. Otherwise,

RW fields in this register reset to architecturally 

UNKNOWN

 values.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2 AArch64 system registers

This chapter describes the system registers in the AArch64 state.

3.2.1 AArch64 registers

This chapter provides information about the AArch64 System registers with 

IMPLEMENTATION

DEFINED

 bit fields and 

IMPLEMENTATION DEFINED

 registers associated with the core.

The chapter provides 

IMPLEMENTATION SPECIFIC

 information, for a complete description of the

registers, see the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The chapter is presented as follows:

AArch64 architectural System register summary

This section identifies the AArch64 architectural System registers implemented in the

Cortex

®

-A55 core that have 

IMPLEMENTATION DEFINED

 bit fields. The register descriptions for

these registers only contain information about the 

IMPLEMENTATION DEFINED

 bits.

AArch64 

IMPLEMENTATION DEFINED

 register summary

This section identifies the AArch64 architectural registers that are implemented in the

Cortex

®

-A55 core that are 

IMPLEMENTATION DEFINED

.

AArch64 registers by functional group

This section groups the 

IMPLEMENTATION DEFINED

 registers and architectural System registers

with 

IMPLEMENTATION DEFINED

 bit fields, as identified previously, by function. It also provides

reset details for key register types.

Register descriptions

The remainder of the chapter provides register descriptions of the 

IMPLEMENTATION DEFINED

registers and architectural system registers with 

IMPLEMENTATION DEFINED

 bit fields, as

identified previously. These are listed in alphabetic order.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

221

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.2 AArch64 architectural system register summary

This section describes the AArch64 architectural system registers implemented in the Cortex

®

-A55

core.

The section contains two tables:

Registers with 

IMPLEMENTATION DEFINED

 bit fields

This table identifies the architecturally defined registers in Cortex

®

-A55 that have

IMPLEMENTATION DEFINED

 bit fields. The register descriptions for these registers only contain

information about the 

IMPLEMENTATION DEFINED

 bits.

See 

Table 3-45: Registers with implementation defined bit fields

 on page 222.

Other architecturally defined registers

This table identifies the other architecturally defined registers that are implemented in the

Cortex

®

-A55 core. These registers are described in the 

Arm

®

 Architecture Reference Manual

for A-profile architecture

.

See 

Table 3-46: Other architecturally defined registers

 on page 225.

Table 3-45: Registers with 

IMPLEMENTATION DEFINED

 bit fields

Name

Op0 CRn Op1 CRm Op2 Width Description

ACTLR_EL1

3

c1

0

c0

1

64

3.2.5 ACTLR_EL1, Auxiliary Control Register, EL1

 on page 234

ACTLR_EL2

3

c1

4

c0

1

64

3.2.6 ACTLR_EL2, Auxiliary Control Register, EL2

 on page 235

ACTLR_EL3

3

c1

6

c0

1

64

3.2.7 ACTLR_EL3, Auxiliary Control Register, EL3

 on page 238

AIDR_EL1

3

c0

1

c0

7

64

3.2.14 AIDR_EL1, Auxiliary ID Register, EL1

 on page 245

AFSR0_EL1

3

c5

0

c1

0

64

3.2.8 AFSR0_EL1, Auxiliary Fault Status Register 0, EL1

 on page 240

AFSR0_EL2

3

c5

4

c1

0

64

3.2.9 AFSR0_EL2, Auxiliary Fault Status Register 0, EL2

 on page 241

AFSR0_EL3

3

c5

6

c1

0

64

3.2.10 AFSR0_EL3, Auxiliary Fault Status Register 0, EL3

 on page 242

AFSR1_EL1

3

c5

0

c1

1

64

3.2.11 AFSR1_EL1, Auxiliary Fault Status Register 1, EL1

 on page 242

AFSR1_EL2

3

c5

4

c1

1

64

3.2.12 AFSR1_EL2, Auxiliary Fault Status Register 1, EL2

 on page 243

AFSR1_EL3

3

c5

6

c1

1

64

3.2.13 AFSR1_EL3, Auxiliary Fault Status Register 1, EL3

 on page 244

AMAIR_EL1

3

c10 0

c3

0

64

3.2.15 AMAIR_EL1, Auxiliary Memory Attribute Indirection Register, EL1

 on

page 246

AMAIR_EL2

3

c10 4

c3

0

64

3.2.16 AMAIR_EL2, Auxiliary Memory Attribute Indirection Register, EL2

 on

page 247

AMAIR_EL3

3

c10 6

c3

0

64

3.2.17 AMAIR_EL3, Auxiliary Memory Attribute Indirection Register, EL3

 on

page 247

CCSIDR_EL1

3

c0

1

c0

0

64

3.2.23 CCSIDR_EL1, Cache Size ID Register, EL1

 on page 257

CLIDR_EL1

3

c0

1

c0

1

64

3.2.24 CLIDR_EL1, Cache Level ID Register, EL1

 on page 260

CPACR_EL1

3

c1

0

c0

2

64

3.2.25 CPACR_EL1, Architectural Feature Access Control Register, EL1

 on

page 261

CPTR_EL2

3

c1

4

c1

2

64

3.2.26 CPTR_EL2, Architectural Feature Trap Register, EL2

 on page 262

CPTR_EL3

3

c1

6

c1

2

64

3.2.27 CPTR_EL3, Architectural Feature Trap Register, EL3

 on page 263

CSSELR_EL1

3

c0

2

c0

0

64

3.2.36 CSSELR_EL1, Cache Size Selection Register, EL1

 on page 280

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

222

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

Op0 CRn Op1 CRm Op2 Width Description

CTR_EL0

3

c0

3

c0

1

64

3.2.37 CTR_EL0, Cache Type Register, EL0

 on page 282

DISR_EL1

3

c12 0

c1

1

64

3.2.39 DISR_EL1, Deferred Interrupt Status Register, EL1

 on page 284

ERRIDR_EL1

3

c5

0

c3

0

64

3.2.40 ERRIDR_EL1, Error ID Register, EL1

 on page 286

ERRSELR_EL1

3

c5

0

c3

1

64

3.2.41 ERRSELR_EL1, Error Record Select Register, EL1

 on page 287

ERXADDR_EL1

3

c5

0

c4

3

64

3.2.42 ERXADDR_EL1, Selected Error Record Address Register, EL1

 on

page 288

ERXCTLR_EL1

3

c5

0

c4

1

64

3.2.43 ERXCTLR_EL1, Selected Error Record Control Register, EL1

 on page

288

ERXFR_EL1

3

c5

0

c4

0

64

3.2.44 ERXFR_EL1, Selected Error Record Feature Register, EL1

 on page

288

ERXMISC0_EL1

3

c5

0

c5

0

64

3.2.45 ERXMISC0_EL1, Selected Error Record Miscellaneous Register 0, EL1

on page 288

ERXMISC1_EL1

3

c5

0

c5

1

64

3.2.46 ERXMISC1_EL1, Selected Error Record Miscellaneous Register 1, EL1

on page 289

ERXSTATUS_EL1

3

c5

0

c4

2

64

3.2.50 ERXSTATUS_EL1, Selected Error Record Primary Status Register, EL1

on page 293

ESR_EL1

3

c5

0

c2

0

64

3.2.51 ESR_EL1, Exception Syndrome Register, EL1

 on page 293

ESR_EL2

3

c5

4

c2

0

64

3.2.52 ESR_EL2, Exception Syndrome Register, EL2

 on page 294

ESR_EL3

3

c5

6

c2

0

64

3.2.53 ESR_EL3, Exception Syndrome Register, EL3

 on page 296

HACR_EL2

3

c1

4

c1

7

64

3.2.54 HACR_EL2, Hyp Auxiliary Configuration Register, EL2

 on page 297

HCR_EL2

3

c1

4

c1

0

64

3.2.55 HCR_EL2, Hypervisor Configuration Register, EL2

 on page 298

ID_AFR0_EL1

3

c0

0

c1

3

64

3.2.65 ID_AFR0_EL1, AArch32 Auxiliary Feature Register 0, EL1

 on page

314

ID_DFR0_EL1

3

c0

0

c1

2

64

3.2.66 ID_DFR0_EL1, AArch32 Debug Feature Register 0, EL1

 on page

315

ID_ISAR0_EL1

3

c0

0

c2

0

64

3.2.67 ID_ISAR0_EL1, AArch32 Instruction Set Attribute Register 0, EL1

 on

page 316

ID_ISAR1_EL1

3

c0

0

c2

1

64

3.2.68 ID_ISAR1_EL1, AArch32 Instruction Set Attribute Register 1, EL1

 on

page 318

ID_ISAR2_EL1

3

c0

0

c2

2

64

3.2.69 ID_ISAR2_EL1, AArch32 Instruction Set Attribute Register 2, EL1

 on

page 321

ID_ISAR3_EL1

3

c0

0

c2

3

64

3.2.70 ID_ISAR3_EL1, AArch32 Instruction Set Attribute Register 3, EL1

 on

page 323

ID_ISAR4_EL1

3

c0

0

c2

4

64

3.2.71 ID_ISAR4_EL1, AArch32 Instruction Set Attribute Register 4, EL1

 on

page 325

ID_ISAR5_EL1

3

c0

0

c2

5

64

3.2.72 ID_ISAR5_EL1, AArch32 Instruction Set Attribute Register 5, EL1

 on

page 327

ID_ISAR6_EL1

3

c0

0

c2

7

64

3.2.73 ID_ISAR6_EL1, AArch32 Instruction Set Attribute Register 6, EL1

 on

page 329

ID_MMFR0_EL1

3

c0

0

c1

4

64

3.2.74 ID_MMFR0_EL1, AArch32 Memory Model Feature Register 0, EL1

on page 330

ID_MMFR1_EL1

3

c0

0

c1

5

64

3.2.75 ID_MMFR1_EL1, AArch32 Memory Model Feature Register 1, EL1

on page 332

ID_MMFR2_EL1

3

c0

0

c1

6

64

3.2.76 ID_MMFR2_EL1, AArch32 Memory Model Feature Register 2, EL1

on page 334

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

223

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

Op0 CRn Op1 CRm Op2 Width Description

ID_MMFR3_EL1

3

c0

0

c1

7

64

3.2.77 ID_MMFR3_EL1, AArch32 Memory Model Feature Register 3, EL1

on page 337

ID_MMFR4_EL1

3

c0

0

c2

6

64

3.2.78 ID_MMFR4_EL1, AArch32 Memory Model Feature Register 4, EL1

on page 339

ID_PFR0_EL1

3

c0

0

c1

0

64

3.2.79 ID_PFR0_EL1, AArch32 Processor Feature Register 0, EL1

 on page

341

ID_PFR1_EL1

3

c0

0

c1

1

64

3.2.80 ID_PFR1_EL1, AArch32 Processor Feature Register 1, EL1

 on page

342

ID_PFR2_EL1

3

c0

0

c3

4

64

3.2.81 ID_PFR2_EL1, AArch32 Processor Feature Register 2, EL1

 on page

344

ID_AA64DFR0_EL1

3

c0

0

c5

0

64

3.2.57 ID_AA64DFR0_EL1, AArch64 Debug Feature Register 0, EL1

 on

page 302

ID_AA64ISAR0_EL1

3

c0

0

c6

0

64

3.2.58 ID_AA64ISAR0_EL1, AArch64 Instruction Set Attribute Register 0,

EL1

 on page 303

ID_AA64ISAR1_EL1

3

c0

0

c6

1

64

3.2.59 ID_AA64ISAR1_EL1, AArch64 Instruction Set Attribute Register 1,

EL1

 on page 305

ID_AA64MMFR0_EL1 3

c0

0

c7

0

64

3.2.60 ID_AA64MMFR0_EL1, AArch64 Memory Model Feature Register 0,

EL1

 on page 306

ID_AA64MMFR1_EL1 3

c0

0

c7

1

64

3.2.61 ID_AA64MMFR1_EL1, AArch64 Memory Model Feature Register 1,

EL1

 on page 308

ID_AA64MMFR2_EL1 3

c0

0

c7

2

64

3.2.62 ID_AA64MMFR2_EL1, AArch64 Memory Model Feature Register 2,

EL1

 on page 310

ID_AA64PFR0_EL1

3

c0

0

c4

0

64

3.2.63 ID_AA64PFR0_EL1, AArch64 Processor Feature Register 0, EL1

 on

page 311

ID_AA64PFR1_EL1

3

c0

0

c4

1

64

3.2.64 ID_AA64PFR1_EL1, AArch64 Processor Feature Register 1, EL1

 on

page 313

IFSR32_EL2

3

c5

4

c0

1

64

3.2.82 IFSR32_EL2, Instruction Fault Status Register, EL2

 on page 345

LORC_EL1

3

c10 0

c4

3

64

3.2.83 LORC_EL1, LORegion Control Register, EL1

 on page 348

LORID_EL1

3

c10 0

c4

7

64

3.2.85 LORID_EL1, Limited Order Region Identification Register, EL1

 on

page 349

LORN_EL1

3

c10 0

c4

2

64

3.2.86 LORN_EL1, LORegion Number Register, EL1

 on page 350

MDCR_EL3

3

c1

6

c3

1

64

3.2.88 MDCR_EL3, Monitor Debug Configuration Register, EL3

 on page

352

MIDR_EL1

3

c0

0

c0

0

64

3.2.89 MIDR_EL1, Main ID Register, EL1

 on page 354

MPIDR_EL1

3

c0

0

c0

5

64

3.2.90 MPIDR_EL1, Multiprocessor Affinity Register, EL1

 on page 355

PAR_EL1

3

c7

0

c4

0

64

3.2.91 PAR_EL1, Physical Address Register, EL1

 on page 357

RVBAR_EL3

3

c12 6

c0

1

64

3.2.93 RVBAR_EL3, Reset Vector Base Address Register, EL3

 on page

359

REVIDR_EL1

3

c0

0

c0

6

64

3.2.92 REVIDR_EL1, Revision ID Register, EL1

 on page 358

SCTLR_EL1

3

c1

0

c0

0

64

3.2.94 SCTLR_EL1, System Control Register, EL1

 on page 360

SCTLR_EL3

3

c1

6

c0

0

64

3.2.96 SCTLR_EL3, System Control Register, EL3

 on page 362

TCR_EL1

3

c2

0

c0

2

64

3.2.97 TCR_EL1, Translation Control Register, EL1

 on page 363

TCR_EL2

3

c2

4

c0

2

64

3.2.98 TCR_EL2, Translation Control Register, EL2

 on page 365

TCR_EL3

3

c2

6

c0

2

64

3.2.99 TCR_EL3, Translation Control Register, EL3

 on page 368

TTBR0_EL1

3

c2

0

c0

0

64

3.2.100 TTBR0_EL1, Translation Table Base Register 0, EL1

 on page 370

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

224

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

Op0 CRn Op1 CRm Op2 Width Description

TTBR0_EL2

3

c2

4

c0

0

64

3.2.101 TTBR0_EL2, Translation Table Base Register 0, EL2

 on page 371

TTBR0_EL3

3

c2

6

c0

0

64

3.2.102 TTBR0_EL3, Translation Table Base Register 0, EL3

 on page 372

TTBR1_EL1

3

c2

0

c0

1

64

3.2.103 TTBR1_EL1, Translation Table Base Register 1, EL1

 on page 373

TTBR1_EL2

3

c2

4

c0

1

64

3.2.104 TTBR1_EL2, Translation Table Base Register 1, EL2

 on page 374

VDISR_EL2

3

c12 4

c1

1

64

3.2.105 VDISR_EL2, Virtual Deferred Interrupt Status Register, EL2

 on page

375

VSESR_EL2

3

c5

4

c2

3

64

3.2.108 VSESR_EL2, Virtual SError Exception Syndrome Register

 on page

380

VTCR_EL2

3

c2

4

c1

2

64

3.2.109 VTCR_EL2, Virtualization Translation Control Register, EL2

 on page

382

VTTBR_EL2

3

c2

4

c1

0

64

3.2.110 VTTBR_EL2, Virtualization Translation Table Base Register, EL2

 on

page 383

Table 3-46: Other architecturally defined registers

Name

Op0 CRn Op1 CRm Op2 Width Description

AFSR0_EL12

3

c5

5

1

0

64

Auxiliary Fault Status Register 0

AFSR1_EL12

3

c5

5

1

1

64

Auxiliary Fault Status Register 1

AMAIR_EL12

3

c10 5

c3

0

64

Auxiliary Memory Attribute Indirection Register

CNTFRQ_EL0

3

c14 3

0

0

64

Counter-timer Frequency register

CNTHCTL_EL2

3

c14 4

c1

0

64

Counter-timer Hypervisor Control register

CNTHP_CTL_EL2

3

c14 4

c2

1

64

Counter-timer Hypervisor Physical Timer Control register

CNTHP_CVAL_EL2

3

c14 4

c2

2

64

Counter-timer Hyp Physical CompareValue register

CNTHP_TVAL_EL2

3

c14 4

c2

0

64

Counter-timer Hyp Physical Timer TimerValue register

CNTHV_CTL_EL2

3

c14 4

c3

1

64

Counter-timer Virtual Timer Control register

CNTHV_CVAL_EL2

3

c14 4

c3

2

64

Counter-timer Virtual Timer CompareValue register

CNTHV_TVAL_EL2

3

c14 4

c3

0

64

Counter-timer Virtual Timer TimerValue register

CNTKCTL_EL1

3

c14 0

c1

0

64

Counter-timer Kernel Control register

CNTKCTL_EL12

3

c14 5

c1

0

64

Counter-timer Kernel Control register

CNTP_CTL_EL0

3

c14 3

c2

1

64

Counter-timer Physical Timer Control register

CNTP_CTL_EL02

3

c14 5

c2

1

64

Counter-timer Physical Timer Control register

CNTP_CVAL_EL0

3

c14 3

c2

2

64

Counter-timer Physical Timer CompareValue register

CNTP_CVAL_EL02

3

c14 5

c2

2

64

Counter-timer Physical Timer CompareValue register

CNTP_TVAL_EL0

3

c14 3

c2

0

64

Counter-timer Physical Timer TimerValue register

CNTP_TVAL_EL02

3

c14 5

c2

0

64

Counter-timer Physical Timer TimerValue register

CNTPCT_EL0

3

c14 3

c0

1

64

Counter-timer Physical Count register

CNTPS_CTL_EL1

3

c14 7

c2

1

64

Counter-timer Physical Secure Timer Control register

CNTPS_CVAL_EL1

3

c14 7

c2

2

64

Counter-timer Physical Secure Timer CompareValue register

CNTPS_TVAL_EL1

3

c14 7

c2

0

64

Counter-timer Physical Secure Timer TimerValue register

CNTV_CTL_EL0

3

c14 3

c3

1

64

Counter-timer Virtual Timer Control register

CNTV_CTL_EL02

3

c14 5

c3

1

64

Counter-timer Virtual Timer Control register

CNTV_CVAL_EL0

3

c14 3

c3

2

64

Counter-timer Virtual Timer CompareValue register

CNTV_CVAL_EL02

3

c14 5

c3

2

64

Counter-timer Virtual Timer CompareValue register

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

225

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

Op0 CRn Op1 CRm Op2 Width Description

CNTV_TVAL_EL0

3

c14 3

c3

0

64

Counter-timer Virtual Timer TimerValue register

CNTV_TVAL_EL02

3

c14 5

c3

0

64

Counter-timer Virtual Timer TimerValue register

CNTVCT_EL0

3

c14 3

c0

2

64

Counter-timer Virtual Count register

CNTVOFF_EL2

3

c14 4

c0

3

64

Counter-timer Virtual Offset register

CONTEXTIDR_EL1

3

c13 0

c0

1

64

Context ID Register (EL1)

CONTEXTIDR_EL12

3

c13 5

c0

1

64

Context ID Register (EL12)

CONTEXTIDR_EL2

3

c13 4

c0

1

64

Context ID Register (EL2)

CPACR_EL12

3

c1

5

c0

2

64

Architectural Feature Access Control Register

CPTR_EL3

3

c1

6

c1

2

64

Architectural Feature Trap Register (EL3)

DACR32_EL2

3

c3

4

c0

0

64

Domain Access Control Register

ESR_EL12

3

c5

5

c2

0

64

Exception Syndrome Register (EL12)

FAR_EL1

3

c6

0

c0

0

64

Fault Address Register (EL1)

FAR_EL12

3

c6

5

c0

0

64

Fault Address Register (EL12)

FAR_EL2

3

c6

4

c0

0

64

Fault Address Register (EL2)

FAR_EL3

3

c6

6

c0

0

64

Fault Address Register (EL3)

FPEXC32_EL2

3

c5

4

c3

0

64

Floating-point Exception Control register

HPFAR_EL2

3

c6

4

c0

4

64

Hypervisor IPA Fault Address Register

HSTR_EL2

3

c1

4

c1

3

64

Hypervisor System Trap Register

ID_AA64AFR0_EL1

3

c0

0

c5

4

64

AArch64 Auxiliary Feature Register 0

ID_AA64AFR1_EL1

3

c0

0

c5

5

64

AArch64 Auxiliary Feature Register 1

ID_AA64DFR1_EL1

3

c0

0

c5

1

64

AArch64 Debug Feature Register 1

ISR_EL1

3

c12 0

c1

0

64

Interrupt Status Register

LOREA_EL1

3

c10 0

c4

1

64

LORegion End Address Register

LORSA_EL1

3

c10 0

c4

0

64

LORegion Start Address Register

MAIR_EL1

3

c10 0

c2

0

64

Memory Attribute Indirection Register (EL1)

MAIR_EL12

3

c10 5

c2

0

64

Memory Attribute Indirection Register (EL12)

MAIR_EL2

3

c10 4

c2

0

64

Memory Attribute Indirection Register (EL2)

MAIR_EL3

3

c10 6

c2

0

64

Memory Attribute Indirection Register (EL3)

MDCR_EL2

3

c1

4

c1

1

64

Monitor Debug Configuration Register

MVFR0_EL1

3

c0

0

c3

0

64

AArch32 Media and VFP Feature Register 0

MVFR1_EL1

3

c0

0

c3

1

64

AArch32 Media and VFP Feature Register 1

MVFR2_EL1

3

c0

0

c3

2

64

AArch32 Media and VFP Feature Register 2

RMR_EL3

3

c12 6

c0

2

64

Reset Management Register

SCR_EL3

3

c1

6

c1

0

64

Secure Configuration Register

SCTLR_EL12

3

c1

5

c0

0

64

System Control Register (EL12)

SCTLR_EL2

3

c1

4

c0

0

64

System Control Register (EL2)

SDER32_EL3

3

c1

6

c1

1

64

AArch32 Secure Debug Enable Register

TCR_EL12

3

c2

5

c0

2

64

Translation Control Register (EL12)

TPIDR_EL0

3

c13 3

c0

2

64

EL0 Read/Write Software Thread ID Register

TPIDR_EL1

3

c13 0

c0

4

64

EL1 Software Thread ID Register

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

226

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

Op0 CRn Op1 CRm Op2 Width Description

TPIDR_EL2

3

c13 4

c0

2

64

EL2 Software Thread ID Register

TPIDR_EL3

3

c13 6

c0

2

64

EL3 Software Thread ID Register

TPIDRRO_EL0

3

c13 3

c0

3

64

EL0 Read-Only Software Thread ID Register

TTBR0_EL12

3

c2

5

c0

0

64

Translation Table Base Register 0 (EL12)

TTBR1_EL12

3

c2

5

c0

1

64

Translation Table Base Register 1 (EL12)

VBAR_EL1

3

c12 0

c0

0

64

Vector Base Address Register (EL1)

VBAR_EL12

3

c12 5

c0

0

64

Vector Base Address Register (EL12)

VBAR_EL2

3

c12 4

c0

0

64

Vector Base Address Register (EL2)

VBAR_EL3

3

c12 6

c0

0

64

Vector Base Address Register (EL3)

VMPIDR_EL2

3

c0

4

c0

5

64

Virtualization Multiprocessor ID Register

VPIDR_EL2

3

c0

4

c0

0

64

Virtualization Core ID Register

3.2.3 AArch64 

IMPLEMENTATION DEFINED

 register summary

This section describes the AArch64 registers in the core that are 

IMPLEMENTATION DEFINED

.

The following tables lists the AArch 64 

IMPLEMENTATION DEFINED

 registers, sorted by opcode.

Table 3-47: AArch64 IMPLEMENTATION DEFINED registers

Name

Op0 CRn Op1 CRm Op2 Width Description

AIDR_EL1

3

c0

1

c0

7

32

3.2.14 AIDR_EL1, Auxiliary ID Register, EL1

 on page 245

ATCR_EL1

3

c15 0

c7

0

64

3.2.18 ATCR_EL1, Auxiliary Translation Control Register, EL1

 on page 248

ATCR_EL2

3

c15 4

c7

0

64

3.2.20 ATCR_EL2, Auxiliary Translation Control Register, EL2

 on page 252

ATCR_EL12

3

c15 5

c7

0

-

3.2.19 ATCR_EL12, Alias to Auxiliary Translation Control Register EL1

 on page

251

ATCR_EL3

3

c15 6

c7

0

64

3.2.21 ATCR_EL3, Auxiliary Translation Control Register, EL3

 on page 254

AVTCR_EL2

3

c15 4

c7

1

64

3.2.22 AVTCR_EL2, Auxiliary Virtualized Translation Control Register, EL2

 on

page 255

CCSIDR_EL1

3

c0

1

c0

0

32

3.2.23 CCSIDR_EL1, Cache Size ID Register, EL1

 on page 257

CLIDR_EL1

3

c0

1

c0

1

64

3.2.24 CLIDR_EL1, Cache Level ID Register, EL1

 on page 260

CPUACTLR_EL1

3

c15 0

c1

0

64

3.2.28 CPUACTLR_EL1, CPU Auxiliary Control Register, EL1

 on page 264

CPUCFR_EL1

3

c15 0

c0

0

32

3.2.29 CPUCFR_EL1, CPU Configuration Register, EL1

 on page 266

CPUECTLR_EL1

3

c15 0

c1

4

64

3.2.30 CPUECTLR_EL1, CPU Extended Control Register, EL1

 on page 268

CPUPCR_EL3

3

15 6

c8

1

64

3.2.31 CPUPCR_EL3, CPU Private Control Register, EL3

 on page 271

CPUPMR_EL3

3

c15 6

c8

3

64

3.2.32 CPUPMR_EL3, CPU Private Mask Register, EL3

 on page 273

CPUPOR_EL3

3

c15 6

c8

2

64

3.2.33 CPUPOR_EL3, CPU Private Operation Register, EL3

 on page 274

CPUPSELR_EL3

3

c15 6

c8

0

32

3.2.34 CPUPSELR_EL3, CPU Private Selection Register, EL3

 on page 276

CPUPWRCTLR_EL1 3

c15 0

c2

7

32

3.2.35 CPUPWRCTLR_EL1, Power Control Register, EL1

 on page 277

ERRIDR_EL1

3

c5

0

c3

0

32

3.2.40 ERRIDR_EL1, Error ID Register, EL1

 on page 286

ERXPFGCDN_EL1 3

c15 0

c2

2

32

3.2.47 ERXPFGCDN_EL1, Selected Error Pseudo Fault Generation Count

Down Register, EL1

 on page 289

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

227

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

Op0 CRn Op1 CRm Op2 Width Description

ERXPFGCTL_EL1

3

c15 0

c2

1

32

3.2.48 ERXPFGCTL_EL1, Selected Error Pseudo Fault Generation Control

Register, EL1

 on page 290

ERXPFGF_EL1

3

c15 0

c2

0

32

3.2.49 ERXPFGF_EL1, Selected Pseudo Fault Generation Feature Register,

EL1

 on page 292

The following table shows the 32-bit wide 

IMPLEMENTATION DEFINED

 Cluster registers. Details of

these registers can be found in 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

Table 3-48: Cluster registers

Name

Op0 CRn op1

CRm op2 Width

Description

CLUSTERCFR_EL1

3

c15 0

c3

0

32-bit

Cluster configuration register.

CLUSTERIDR_EL1

3

c15 0

c3

1

32-bit

Cluster main revision ID.

CLUSTEREVIDR_EL1

3

c15 0

c3

2

32-bit

Cluster ECO ID.

CLUSTERACTLR_EL1

3

c15 0

c3

3

32-bit

Cluster auxiliary control register.

CLUSTERECTLR_EL1

3

c15 0

c3

4

32-bit

Cluster extended control register.

CLUSTERPWRCTLR_EL1

3

c15 0

c3

5

32-bit

Cluster power control register.

CLUSTERPWRDN_EL1

3

c15 0

c3

6

32-bit

Cluster power down register.

CLUSTERPWRSTAT_EL1

3

c15 0

c3

7

32-bit

Cluster power status register.

CLUSTERTHREADSID_EL1

3

c15 0

c4

0

32-bit

Cluster thread scheme ID register.

CLUSTERACPSID_EL1

3

c15 0

c4

1

32-bit

Cluster ACP scheme ID register.

CLUSTERSTASHSID_EL1

3

c15 0

c4

2

32-bit

Cluster stash scheme ID register.

CLUSTERPARTCR_EL1

3

c15 0

c4

3

32-bit

Cluster partition control register.

CLUSTERBUSQOS_EL1

3

c15 0

c4

4

32-bit

Cluster bus QoS control register.

CLUSTERL3HIT_EL1

3

c15 0

c4

5

32-bit

Cluster L3 hit counter register.

CLUSTERL3MISS_EL1

3

c15 0

c4

6

32-bit

Cluster L3 miss counter register.

CLUSTERTHREADSIDOVR_EL1

3

c15 0

c4

7

32-bit

Cluster thread scheme ID override register.

CLUSTERPM*_ELx

3

c15 0 or 6 c5-c6 0-7 32-bit or 64-bit

Cluster PMU registers

3.2.4 AArch64 registers by functional group

This section identifies the AArch64 registers by their functional groups and applies to the registers

in the core that are 

IMPLEMENTATION DEFINED

 or have micro-architectural bit fields.

Reset values are provided for these registers.

Table 3-49: Identification registers

Name

Type Reset

Description

AIDR_EL1

RO

0x00000000

3.2.14 AIDR_EL1, Auxiliary ID Register, EL1

 on page 245

CCSIDR__EL1

RO

-

3.2.23 CCSIDR_EL1, Cache Size ID Register, EL1

 on page 257

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

228

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

Type Reset

Description

CLIDR_EL1

RO

UNK

Unknown: [31:30], [25:24],

[22:21], 8, 5

'b1: [1:0]

'b0: [29:26], 23, [20:9], [7:6], [4:2]

3.2.24 CLIDR_EL1, Cache Level ID Register, EL1

 on page 260

CSSELR_EL1

RW

0x00000000

3.2.36 CSSELR_EL1, Cache Size Selection Register, EL1

 on page 280

CTR_EL0

RO

0x84448004

3.2.37 CTR_EL0, Cache Type Register, EL0

 on page 282

DCZID_EL0

RO

-

3.2.38 DCZID_EL0, Data Cache Zero ID Register, EL0

 on page 283

ERRIDR_EL1

RO

-

3.2.40 ERRIDR_EL1, Error ID Register, EL1

 on page 286

ID_AA64DFR0_EL1

RO

0x0000000010305408

3.2.57 ID_AA64DFR0_EL1, AArch64 Debug Feature Register 0, EL1

on page 302

ID_AA64ISAR0_EL1

RO

UNK

Unknown: 12, 8, 5

'b1: 28, 21, 16

'b0: [64:29], [27:22], [20:17],

[15:13], [11:9], [7:6], [4:0]

3.2.58 ID_AA64ISAR0_EL1, AArch64 Instruction Set Attribute Register

0, EL1

 on page 303

If the Cryptographic extensions are not implemented or disabled these

fields will read 

0

.

ID_AA64ISAR1_EL1

RO

0x0000000000100001

3.2.59 ID_AA64ISAR1_EL1, AArch64 Instruction Set Attribute Register

1, EL1

 on page 305

ID_AA64MMFR0_EL1 RO

0x0000000000101122

3.2.60 ID_AA64MMFR0_EL1, AArch64 Memory Model Feature

Register 0, EL1

 on page 306

ID_AA64MMFR1_EL1 RO

0x0000000010212122

3.2.61 ID_AA64MMFR1_EL1, AArch64 Memory Model Feature

Register 1, EL1

 on page 308

ID_AA64MMFR2_EL1 RO

0x0000000000001011

3.2.62 ID_AA64MMFR2_EL1, AArch64 Memory Model Feature

Register 2, EL1

 on page 310

ID_AA64PFR0_EL1

RO

UNK

Unknown: 24, [23:20], [19:16]

'b1: 28, 13, 9, 5, 1

'b0: [63:29], [27:25], [15:14],

[12:10], [8:6], [4:2], 0

3.2.63 ID_AA64PFR0_EL1, AArch64 Processor Feature Register 0, EL1

on page 311

If Advanced-SIMD/FP has been configured then [23:20] and [19:16]

report 

0001

, otherwise they report 

1111

.

If the GICv4 interface is disabled (GICCDISABLE is high) [24] will read

0

, otherwise it will read 

1

.

ID_AA64PFR1_EL1

RO

0x0000000000000010

3.2.64 ID_AA64PFR1_EL1, AArch64 Processor Feature Register 1, EL1

on page 313

ID_AFR0_EL1

RO

0x00000000

3.2.65 ID_AFR0_EL1, AArch32 Auxiliary Feature Register 0, EL1

 on

page 314

ID_DFR0_EL1

RO

0x04010088

3.2.66 ID_DFR0_EL1, AArch32 Debug Feature Register 0, EL1

 on

page 315

Bits [19:16] are 

0x1

 if ETM is implemented, and 

0x0

 otherwise.

ID_ISAR0_EL1

RO

0x02101110

3.2.67 ID_ISAR0_EL1, AArch32 Instruction Set Attribute Register 0,

EL1

 on page 316

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

229

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

Type Reset

Description

ID_ISAR1_EL1

RO

0x13112111

3.2.68 ID_ISAR1_EL1, AArch32 Instruction Set Attribute Register 1,

EL1

 on page 318

ID_ISAR2_EL1

RO

0x21232042

3.2.69 ID_ISAR2_EL1, AArch32 Instruction Set Attribute Register 2,

EL1

 on page 321

ID_ISAR3_EL1

RO

0x01112131

3.2.70 ID_ISAR3_EL1, AArch32 Instruction Set Attribute Register 3,

EL1

 on page 323

ID_ISAR4_EL1

RO

0x00011142

3.2.71 ID_ISAR4_EL1, AArch32 Instruction Set Attribute Register 4,

EL1

 on page 325

ID_ISAR5_EL1

RO

0x01011121

3.2.72 ID_ISAR5_EL1, AArch32 Instruction Set Attribute Register 5,

EL1

 on page 327

ID_ISAR5 has the value 

0x00010001

 if the Cryptographic Extension

is not implemented and enabled.

ID_ISAR6_EL1

RO

0x00000010

3.2.73 ID_ISAR6_EL1, AArch32 Instruction Set Attribute Register 6,

EL1

 on page 329

ID_MMFR0_EL1

RO

0x10201105

3.2.74 ID_MMFR0_EL1, AArch32 Memory Model Feature Register 0,

EL1

 on page 330

ID_MMFR1_EL1

RO

0x40000000

3.2.75 ID_MMFR1_EL1, AArch32 Memory Model Feature Register 1,

EL1

 on page 332

ID_MMFR2_EL1

RO

0x01260000

3.2.76 ID_MMFR2_EL1, AArch32 Memory Model Feature Register 2,

EL1

 on page 334

ID_MMFR3_EL1

RO

0x02122211

3.2.77 ID_MMFR3_EL1, AArch32 Memory Model Feature Register 3,

EL1

 on page 337

ID_MMFR4_EL1

RO

0x00021110

3.2.78 ID_MMFR4_EL1, AArch32 Memory Model Feature Register 4,

EL1

 on page 339

ID_PFR0_EL1

RO

0x10000131

3.2.79 ID_PFR0_EL1, AArch32 Processor Feature Register 0, EL1

 on

page 341

ID_PFR1_EL1

RO

0x10011011

3.2.80 ID_PFR1_EL1, AArch32 Processor Feature Register 1, EL1

 on

page 342

Bits [31:28] are 

0x1

 if the GIC CPU interface is implemented and

enabled, and 

0x0

 otherwise.

ID_PFR2_EL1

RO

0x00000011

3.2.81 ID_PFR2_EL1, AArch32 Processor Feature Register 2, EL1

 on

page 344

LORID_EL1

RO

0x0000000000040004

3.2.85 LORID_EL1, Limited Order Region Identification Register, EL1

on page 349

MIDR_EL1

RO

0x412FD050

3.2.89 MIDR_EL1, Main ID Register, EL1

 on page 354

MPIDR_EL1

RO

Unknown: [29:25], [23:16], [10:8]

'b1: 31, 24

'b0: [15:11], [7:0]

3.2.90 MPIDR_EL1, Multiprocessor Affinity Register, EL1

 on page

355

REVIDR_EL1

RO

0x00000000

3.2.92 REVIDR_EL1, Revision ID Register, EL1

 on page 358

VMPIDR_EL2

RW -

Virtualization Multiprocessor ID Register EL2

The reset value is the value of MPIDR_EL1.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

230

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

Type Reset

Description

VPIDR_EL2

RW -

Virtualization Core ID Register EL2

The reset value is the value of MIDR_EL1.

Table 3-50: Other system control registers

Name

Type

Description

ACTLR_EL1

RW

3.2.5 ACTLR_EL1, Auxiliary Control Register, EL1

 on page 234

ACTLR_EL2

RW

3.2.6 ACTLR_EL2, Auxiliary Control Register, EL2

 on page 235

ACTLR_EL3

RW

3.2.7 ACTLR_EL3, Auxiliary Control Register, EL3

 on page 238

CPACR_EL1

RW

3.2.25 CPACR_EL1, Architectural Feature Access Control Register, EL1

 on page 261

SCTLR_EL1

RW

3.2.94 SCTLR_EL1, System Control Register, EL1

 on page 360

SCTLR_EL3

RW

3.2.96 SCTLR_EL3, System Control Register, EL3

 on page 362

Table 3-51: Reliability, Availability, Serviceability (RAS) registers

Name

Type Description

DISR_EL1

RW

3.2.39 DISR_EL1, Deferred Interrupt Status Register, EL1

 on page 284

ERRIDR_EL1

RW

3.2.40 ERRIDR_EL1, Error ID Register, EL1

 on page 286

ERRSELR_EL1

RW

3.2.41 ERRSELR_EL1, Error Record Select Register, EL1

 on page 287

ERXADDR_EL1

RW

3.2.42 ERXADDR_EL1, Selected Error Record Address Register, EL1

 on page 288

ERXCTLR_EL1

RW

3.2.43 ERXCTLR_EL1, Selected Error Record Control Register, EL1

 on page 288

ERXFR_EL1

RO

3.2.44 ERXFR_EL1, Selected Error Record Feature Register, EL1

 on page 288

ERXMISC0_EL1

RW

3.2.45 ERXMISC0_EL1, Selected Error Record Miscellaneous Register 0, EL1

 on page 288

ERXMISC1_EL1

RW

3.2.46 ERXMISC1_EL1, Selected Error Record Miscellaneous Register 1, EL1

 on page 289

ERXSTATUS_EL1 RW

3.2.50 ERXSTATUS_EL1, Selected Error Record Primary Status Register, EL1

 on page 293

ERXPFGCDN_EL1 RW

3.2.47 ERXPFGCDN_EL1, Selected Error Pseudo Fault Generation Count Down Register, EL1

 on page 289

ERXPFGCTL_EL1 RW

3.2.48 ERXPFGCTL_EL1, Selected Error Pseudo Fault Generation Control Register, EL1

 on page 290

ERXPFGF_EL1

RO

3.2.49 ERXPFGF_EL1, Selected Pseudo Fault Generation Feature Register, EL1

 on page 292

HCR_EL2

RW

3.2.55 HCR_EL2, Hypervisor Configuration Register, EL2

 on page 298

VDISR_EL2

RW

3.2.105 VDISR_EL2, Virtual Deferred Interrupt Status Register, EL2

 on page 375

VSESR_EL2

RW

3.2.108 VSESR_EL2, Virtual SError Exception Syndrome Register

 on page 380

Table 3-52: Virtual Memory control registers

Name

Type

Description

AMAIR_EL1

RW

3.2.15 AMAIR_EL1, Auxiliary Memory Attribute Indirection Register, EL1

 on page 246

AMAIR_EL2

RW

3.2.16 AMAIR_EL2, Auxiliary Memory Attribute Indirection Register, EL2

 on page 247

AMAIR_EL3

RW

3.2.17 AMAIR_EL3, Auxiliary Memory Attribute Indirection Register, EL3

 on page 247

ATCR_EL1

RW

3.2.18 ATCR_EL1, Auxiliary Translation Control Register, EL1

 on page 248

ATCR_EL2

RW

3.2.20 ATCR_EL2, Auxiliary Translation Control Register, EL2

 on page 252

ATCR_EL12

-

3.2.19 ATCR_EL12, Alias to Auxiliary Translation Control Register EL1

 on page 251

ATCR_EL3

RW

3.2.21 ATCR_EL3, Auxiliary Translation Control Register, EL3

 on page 254

AVTCR_EL2

RW

3.2.22 AVTCR_EL2, Auxiliary Virtualized Translation Control Register, EL2

 on page 255

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

231

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

Type

Description

LORC_EL1

RW

3.2.83 LORC_EL1, LORegion Control Register, EL1

 on page 348

LOREA_EL1

RW

3.2.84 LOREA_EL1, LORegion End Address Register, EL1

 on page 348

LORID_EL1

RO

3.2.85 LORID_EL1, Limited Order Region Identification Register, EL1

 on page 349

LORN_EL1

RW

3.2.86 LORN_EL1, LORegion Number Register, EL1

 on page 350

LORSA_EL1

RW

3.2.87 LORSA_EL1, LORegion Start Address Register, EL1

 on page 351

TCR_EL1

RW

3.2.97 TCR_EL1, Translation Control Register, EL1

 on page 363

TCR_EL2

RW

3.2.98 TCR_EL2, Translation Control Register, EL2

 on page 365

TCR_EL3

RW

3.2.99 TCR_EL3, Translation Control Register, EL3

 on page 368

TTBR0_EL1

RW

3.2.100 TTBR0_EL1, Translation Table Base Register 0, EL1

 on page 370

TTBR0_EL2

RW

3.2.101 TTBR0_EL2, Translation Table Base Register 0, EL2

 on page 371

TTBR0_EL3

RW

3.2.102 TTBR0_EL3, Translation Table Base Register 0, EL3

 on page 372

TTBR1_EL1

RW

3.2.103 TTBR1_EL1, Translation Table Base Register 1, EL1

 on page 373

TTBR1_EL2

RW

3.2.104 TTBR1_EL2, Translation Table Base Register 1, EL2

 on page 374

VTTBR_EL2

RW

3.2.110 VTTBR_EL2, Virtualization Translation Table Base Register, EL2

 on page 383

Table 3-53: Virtualization registers

Name

Type Description

ACTLR_EL2

RW

3.2.6 ACTLR_EL2, Auxiliary Control Register, EL2

 on page 235

AFSR0_EL2

RW

3.2.9 AFSR0_EL2, Auxiliary Fault Status Register 0, EL2

 on page 241

AFSR1_EL2

RW

3.2.12 AFSR1_EL2, Auxiliary Fault Status Register 1, EL2

 on page 243

AMAIR_EL2

RW

3.2.16 AMAIR_EL2, Auxiliary Memory Attribute Indirection Register, EL2

 on page 247

CPTR_EL2

RW

3.2.26 CPTR_EL2, Architectural Feature Trap Register, EL2

 on page 262

ESR_EL2

RW

3.2.52 ESR_EL2, Exception Syndrome Register, EL2

 on page 294

HACR_EL2

RW

3.2.54 HACR_EL2, Hyp Auxiliary Configuration Register, EL2

 on page 297

HCR_EL2

RW

3.2.55 HCR_EL2, Hypervisor Configuration Register, EL2

 on page 298

HPFAR_EL2

RW

Hypervisor IPA Fault Address Register EL2

TCR_EL2

RW

3.2.98 TCR_EL2, Translation Control Register, EL2

 on page 365

VMPIDR_EL2

RW

Virtualization Multiprocessor ID Register EL2

VPIDR_EL2

RW

Virtualization Core ID Register EL2

VSESR_EL2

RW

3.2.108 VSESR_EL2, Virtual SError Exception Syndrome Register

 on page 380

VTCR_EL2

RW

3.2.109 VTCR_EL2, Virtualization Translation Control Register, EL2

 on page 382

VTTBR_EL2

RW

3.2.110 VTTBR_EL2, Virtualization Translation Table Base Register, EL2

 on page 383

Table 3-54: Exception and fault handling registers

Name

Type

Description

AFSR0_EL1

RW

3.2.8 AFSR0_EL1, Auxiliary Fault Status Register 0, EL1

 on page 240

AFSR0_EL2

RW

3.2.9 AFSR0_EL2, Auxiliary Fault Status Register 0, EL2

 on page 241

AFSR0_EL3

RW

3.2.10 AFSR0_EL3, Auxiliary Fault Status Register 0, EL3

 on page 242

AFSR1_EL1

RW

3.2.11 AFSR1_EL1, Auxiliary Fault Status Register 1, EL1

 on page 242

AFSR1_EL2

RW

3.2.12 AFSR1_EL2, Auxiliary Fault Status Register 1, EL2

 on page 243

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

232

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

Type

Description

AFSR1_EL3

RW

3.2.13 AFSR1_EL3, Auxiliary Fault Status Register 1, EL3

 on page 244

DISR_EL1

RW

3.2.39 DISR_EL1, Deferred Interrupt Status Register, EL1

 on page 284

ESR_EL1

RW

3.2.51 ESR_EL1, Exception Syndrome Register, EL1

 on page 293

ESR_EL2

RW

3.2.52 ESR_EL2, Exception Syndrome Register, EL2

 on page 294

ESR_EL3

RW

3.2.53 ESR_EL3, Exception Syndrome Register, EL3

 on page 296

HPFAR_EL2

RW

Hypervisor IPA Fault Address Register EL2

IFSR32_EL2

RW

3.2.82 IFSR32_EL2, Instruction Fault Status Register, EL2

 on page 345

VDISR_EL2

RW

3.2.105 VDISR_EL2, Virtual Deferred Interrupt Status Register, EL2

 on page 375

VSESR_EL2

RW

3.2.108 VSESR_EL2, Virtual SError Exception Syndrome Register

 on page 380

Table 3-55: IMPLEMENTATION DEFINED registers

Name

Type Description

ATCR_EL1

RW

3.2.18 ATCR_EL1, Auxiliary Translation Control Register, EL1

 on page 248.

ATCR_EL12

RW

3.2.19 ATCR_EL12, Alias to Auxiliary Translation Control Register EL1

 on page 251.

ATCR_EL2

RW

3.2.20 ATCR_EL2, Auxiliary Translation Control Register, EL2

 on page 252.

ATCR_EL3

RW

3.2.21 ATCR_EL3, Auxiliary Translation Control Register, EL3

 on page 254.

AVTCR_EL2

RW

3.2.22 AVTCR_EL2, Auxiliary Virtualized Translation Control Register, EL2

 on page 255.

CPUACTLR_EL1

RW

3.2.28 CPUACTLR_EL1, CPU Auxiliary Control Register, EL1

 on page 264

CPUCFR_EL1

RO

3.2.29 CPUCFR_EL1, CPU Configuration Register, EL1

 on page 266

CPUECTLR_EL1

RW

3.2.30 CPUECTLR_EL1, CPU Extended Control Register, EL1

 on page 268

CPUPCR_EL3

RW

3.2.31 CPUPCR_EL3, CPU Private Control Register, EL3

 on page 271

CPUPMR_EL3

RW

3.2.32 CPUPMR_EL3, CPU Private Mask Register, EL3

 on page 273

CPUPOR_EL3

RW

3.2.33 CPUPOR_EL3, CPU Private Operation Register, EL3

 on page 274

CPUPSELR_EL3

RW

3.2.34 CPUPSELR_EL3, CPU Private Selection Register, EL3

 on page 276

CPUPWRCTLR_EL1 RW

3.2.35 CPUPWRCTLR_EL1, Power Control Register, EL1

 on page 277

ERXPFGCDN_EL1

RW

3.2.47 ERXPFGCDN_EL1, Selected Error Pseudo Fault Generation Count Down Register, EL1

 on page 289

ERXPFGCTL_EL1

RW

3.2.48 ERXPFGCTL_EL1, Selected Error Pseudo Fault Generation Control Register, EL1

 on page 290

ERXPFGF_EL1

RW

3.2.49 ERXPFGF_EL1, Selected Pseudo Fault Generation Feature Register, EL1

 on page 292

The following table shows the 32-bit wide 

IMPLEMENTATION DEFINED

 Cluster registers. Details of

these registers can be found in 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

Table 3-56: Cluster registers

Name

Copro CRn Opc1

CRm

Opc2 Width

Description

CLUSTERCFR_EL1

3

c15

0

c3

0

32-bit

Cluster configuration register.

CLUSTERIDR_EL1

3

c15

0

c3

1

32-bit

Cluster main revision ID.

CLUSTEREVIDR_EL1

3

c15

0

c3

2

32-bit

Cluster ECO ID.

CLUSTERACTLR_EL1

3

c15

0

c3

3

32-bit

Cluster auxiliary control register.

CLUSTERECTLR_EL1

3

c15

0

c3

4

32-bit

Cluster extended control register.

CLUSTERPWRCTLR_EL1

3

c15

0

c3

5

32-bit

Cluster power control register.

CLUSTERPWRDN_EL1

3

c15

0

c3

6

32-bit

Cluster power down register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

233

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

Copro CRn Opc1

CRm

Opc2 Width

Description

CLUSTERPWRSTAT_EL1

3

c15

0

c3

7

32-bit

Cluster power status register.

CLUSTERTHREADSID_EL1

3

c15

0

c4

0

32-bit

Cluster thread scheme ID register.

CLUSTERACPSID_EL1

3

c15

0

c4

1

32-bit

Cluster ACP scheme ID register.

CLUSTERSTASHSID_EL1

3

c15

0

c4

2

32-bit

Cluster stash scheme ID register.

CLUSTERPARTCR_EL1

3

c15

0

c4

3

32-bit

Cluster partition control register.

CLUSTERBUSQOS_EL1

3

c15

0

c4

4

32-bit

Cluster bus QoS control register.

CLUSTERL3HIT_EL1

3

c15

0

c4

5

32-bit

Cluster L3 hit counter register.

CLUSTERL3MISS_EL1

3

c15

0

c4

6

32-bit

Cluster L3 miss counter register.

CLUSTERPM*_ELx

3

c15

0 or 6 c5-c6 0-7

32-bit or 64-bit

Cluster PMU registers

Table 3-57: Security

Name

Type

Description

ACTLR_EL3

RW

3.2.7 ACTLR_EL3, Auxiliary Control Register, EL3

 on page 238

AFSR0_EL3

RW

3.2.10 AFSR0_EL3, Auxiliary Fault Status Register 0, EL3

 on page 242

AFSR1_EL3

RW

3.2.13 AFSR1_EL3, Auxiliary Fault Status Register 1, EL3

 on page 244

AMAIR_EL3

RW

3.2.17 AMAIR_EL3, Auxiliary Memory Attribute Indirection Register, EL3

 on page 247

CPTR_EL3

RW

3.2.27 CPTR_EL3, Architectural Feature Trap Register, EL3

 on page 263

MDCR_EL3

RW

3.2.88 MDCR_EL3, Monitor Debug Configuration Register, EL3

 on page 352

Table 3-58: Reset management registers

Name

Type

Description

RVBAR_EL3

RW

3.2.93 RVBAR_EL3, Reset Vector Base Address Register, EL3

 on page 359

Table 3-59: Address registers

Name

Type

Description

PAR_EL1

RW

3.2.91 PAR_EL1, Physical Address Register, EL1

 on page 357

3.2.5 ACTLR_EL1, Auxiliary Control Register, EL1

ACTLR_EL1 provides 

IMPLEMENTATION DEFINED

 configuration and control options for execution at

EL1 and EL0.

Bit field descriptions

ACTLR_EL1 is a 64-bit register, and is part of:
• The Other system control registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

234

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-82: ACTLR_EL1 bit assignments

63

0

RES

0

RES0, [63:0]

RES0

Reserved.

Configurations

AArch64 System register ACTLR_EL1 bits [31:0] are architecturally mapped to AArch32

System register ACTLR(NS). See 

3.1.5 ACTLR, Auxiliary Control Register

 on page 94.

AArch64 System register ACTLR_EL1 bits [63:32] are architecturally mapped to AArch32

System register ACTLR2(S). See 

3.1.6 ACTLR2, Auxiliary Control Register 2

 on page 97.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.6 ACTLR_EL2, Auxiliary Control Register, EL2

The ACTLR_EL2 provides 

IMPLEMENTATION DEFINED

 configuration and control options for EL2.

Bit field descriptions

ACTLR_EL2 is a 64-bit register, and is part of:
• The Virtualization registers functional group.
• The Other system control registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

235

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-83: ACTLR_EL2 bit assignments

63

7 6 5

1 0

4

2

SMEN

PWREN

ECTLREN
ACTLREN

8

10

11

12

13

ERXPFGEN

RES

0

CLUSTERPMUEN

9

TSIDEN

RES0, [63:13]

RES0

Reserved.

CLUSTERPMUEN, [12]

Performance Management Registers enable. The possible values are:

0

CLUSTERPM* registers are not write-accessible from a lower

Exception level. This is the reset value.

1

CLUSTERPM* registers are write-accessible from EL1 Non-secure if

they are write-accessible from EL2.

SMEN, [11]

Scheme Management Registers enable. The possible values are:

0

Registers CLUSTERACPSID, CLUSTERSTASHSID, CLUSTERPARTCR,

CLUSTERBUSQOS, and CLUSTERTHREADSIDOVR are not write-

accessible from EL1 Non-secure. This is the reset value.

1

Registers CLUSTERACPSID, CLUSTERSTASHSID, CLUSTERPARTCR,

CLUSTERBUSQOS, and CLUSTERTHREADSIDOVR are write-

accessible from EL1 Non-secure if they are write-accessible from

EL2.

TSIDEN, [10]

Thread Scheme ID Register enable. The possible values are:

0

Register CLUSTERTHREADSID is not write-accessible from EL1

Non-secure. This is the reset value.

1

Register CLUSTERTHREADSID is write-accessible from EL1 Non-

secure if they are write-accessible from EL2.

RES0, [9:8]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

236

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

PWREN, [7]

Power Control Registers enable. The possible values are:

0

Registers CPUPWRCTLR, CLUSTERPWRCTLR, CLUSTERPWRDN,

CLUSTERPWRSTAT, CLUSTERL3HIT and CLUSTERL3MISS are not

write-accessible from EL1 Non-secure. This is the reset value.

1

Registers CPUPWRCTLR, CLUSTERPWRCTLR, CLUSTERPWRDN,

CLUSTERPWRSTAT, CLUSTERL3HIT and CLUSTERL3MISS are

write-accessible from EL1 Non-secure if they are write-accessible

from EL2.

RES0, [6]

RES0

Reserved.

ERXPFGEN, [5]

Error Record Registers enable. The possible values are:

0

ERXPFG* are not write-accessible from EL1 Non-secure. This is the

reset value.

1

ERXPFG* are write-accessible from EL1 Non-secure if they are write-

accessible from EL2.

RES0, [4:2]

RES0

Reserved.

ECTLREN, [1]

Extended Control Registers enable. The possible values are:

0

CPUECTLR and CLUSTERECTLR are not write-accessible from EL1

Non-secure. This is the reset value.

1

CPUECTLR and CLUSTERECTLR are write-accessible from EL1 Non-

secure if they are write-accessible from EL2.

ACTLREN, [0]

Auxiliary Control Registers enable. The possible values are:

0

CPUACTLR and CLUSTERACTLR are not write-accessible from EL1

Non-secure. This is the reset value.

1

CPUACTLR and CLUSTERACTLR are write-accessible from EL1 Non-

secure if they are write-accessible from EL2.

Configurations

ACTLR_EL2 bits [31:0] are architecturally mapped to the AArch32 HACTLR register. See

3.1.48 HACTLR, Hyp Auxiliary Control Register

 on page 146.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

237

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

ACTLR_EL2 bits [63:32] are architecturally mapped to the AArch32 HACTLR2 register. See

3.1.49 HACTLR2, Hyp Auxiliary Control Register 2

 on page 149.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.7 ACTLR_EL3, Auxiliary Control Register, EL3

The ACTLR_EL3 provides 

IMPLEMENTATION DEFINED

 configuration and control options for EL3.

Bit field descriptions

ACTLR_EL3 is a 64-bit register, and is part of:
• The Other system control registers functional group.
• The Security registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Figure 3-84: ACTLR_EL3 bit assignments

63

7 6 5

1 0

4

2

SMEN

PWREN

ECTLREN
ACTLREN

8

10

11

12

13

ERXPFGEN

RES

0

CLUSTERPMUEN

9

TSIDEN

RES0, [63:13]

RES0

Reserved.

CLUSTERPMUEN, [12]

Performance Management Registers enable. The possible values are:

0

CLUSTERPM* registers are not write-accessible from a lower

Exception level. This is the reset value.

1

CLUSTERPM* registers are write-accessible from EL2 and EL1

Secure.

SMEN, [11]

Scheme Management Registers enable. The possible values are:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

238

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0

Registers CLUSTERACPSID, CLUSTERSTASHSID, CLUSTERPARTCR,

CLUSTERBUSQOS, and CLUSTERTHREADSIDOVR are not write-

accessible from EL2 and EL1 Secure. This is the reset value.

1

Registers CLUSTERACPSID, CLUSTERSTASHSID, CLUSTERPARTCR,

CLUSTERBUSQOS, and CLUSTERTHREADSIDOVR are write-

accessible from EL2 and EL1 Secure.

TSIDEN, [10]

Thread Scheme ID Register enable. The possible values are:

0

Register CLUSTERTHREADSID is not write-accessible from EL2 and

EL1 Secure. This is the reset value.

1

Register CLUSTERTHREADSID is write-accessible from EL2 and EL1

Secure.

RES0, [9:8]

RES0

Reserved.

PWREN, [7]

Power Control Registers enable. The possible values are:

0

Registers CPUPWRCTLR, CLUSTERPWRCTLR, CLUSTERPWRDN,

CLUSTERPWRSTAT, CLUSTERL3HIT and CLUSTERL3MISS are not

write-accessible from EL2 and EL1 Secure. This is the reset value.

1

Registers CPUPWRCTLR, CLUSTERPWRCTLR, CLUSTERPWRDN,

CLUSTERPWRSTAT, CLUSTERL3HIT and CLUSTERL3MISS are

write-accessible from EL2 and EL1 Secure.

RES0, [6]

RES0

Reserved.

ERXPFGEN, [5]

Error Record Registers enable. The possible values are:

0

ERXPFG* are not write-accessible from EL2 and EL1 Secure. This is

the reset value.

1

ERXPFG* are write-accessible from EL2 and EL1 Secure.

RES0, [4:2]

RES0

Reserved.

ECTLREN, [1]

Extended Control Registers enable. The possible values are:

0

CPUECTLR and CLUSTERECTLR are not write-accessible from EL2

and EL1 Secure. This is the reset value.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

239

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

1

CPUECTLR and CLUSTERECTLR are write-accessible from EL2 and

EL1 Secure.

ACTLREN, [0]

Auxiliary Control Registers enable. The possible values are:

0

CPUACTLR and CLUSTERACTLR are not write-accessible from EL2

and EL1 Secure. This is the reset value.

1

CPUACTLR and CLUSTERACTLR are write-accessible from EL2 and

EL1 Secure.

Configurations

AArch64 System register ACTLR_EL3 bits [31:0] is mapped to AArch32 register ACTLR (S).

See 

3.1.5 ACTLR, Auxiliary Control Register

 on page 94.

AArch64 System register ACTLR_EL3 bits [63:32] is mapped to AArch32 register ACTLR2 (S).

See 

3.1.6 ACTLR2, Auxiliary Control Register 2

 on page 97.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.8 AFSR0_EL1, Auxiliary Fault Status Register 0, EL1

AFSR0_EL1 provides additional 

IMPLEMENTATION DEFINED

 fault status information for exceptions

that are taken to EL1. In the Cortex

®

-A55 core, no additional information is provided for these

exceptions. Therefore this register is not used.

Bit field descriptions

AFSR0_EL1 is a 64-bit register, and is part of:
• The Exception and fault handling registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Figure 3-85: AFSR0_EL1 bit assignments

31

RES0

0

Reserved

63

32

Reserved, [63:32]

 

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

240

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

RES0, [31:0]

RES0

Reserved.

Configurations

AArch64 System register AFSR0_EL1 bits [31:0] are architecturally mapped to AArch32

System register ADFSR. See 

3.1.7 ADFSR, Auxiliary Data Fault Status Register

 on page

98.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.9 AFSR0_EL2, Auxiliary Fault Status Register 0, EL2

AFSR0_EL2 provides extra 

IMPLEMENTATION DEFINED

 fault status information for exceptions that are

taken to EL2.

Bit field descriptions

AFSR0_EL2 is a 64-bit register, and is part of:
• The Virtualization registers functional group.
• The Exception and fault handling registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Figure 3-86: AFSR0_EL2 bit assignments

31

RES0

0

Reserved

63

32

Reserved, [63:32]

 

Reserved.

RES0, [31:0]

RES0

Reserved.

Configurations

AArch64 System register AFSR0_EL2 bits [31:0] are architecturally mapped to AArch32

System register HADFSR. See 

3.1.50 HADFSR, Hyp Auxiliary Data Fault Status Syndrome

Register

 on page 149.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

241

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

If EL2 is not implemented, this register is 

RES0

 from EL3.

This register has no effect if EL2 is not enabled in the current Security state.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.10 AFSR0_EL3, Auxiliary Fault Status Register 0, EL3

AFSR0_EL3 provides additional 

IMPLEMENTATION DEFINED

 fault status information for exceptions

that are taken to EL3. In the Cortex

®

-A55 core, no additional information is provided for these

exceptions. Therefore this register is not used.

Bit field descriptions

AFSR0_EL3 is a 64-bit register, and is part of:
• The Exception and fault handling registers functional group.
• The Security registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Figure 3-87: AFSR0_EL3 bit assignments

31

RES0

0

Reserved

63

32

Reserved, [63:32]

 

Reserved.

RES0, [31:0]

RES0

Reserved.

Configurations

This register is present only when EL3 is implemented. Otherwise, direct accesses to

AFSR0_EL3 are 

UNDEFINED

.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

242

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.11 AFSR1_EL1, Auxiliary Fault Status Register 1, EL1

AFSR1_EL1 provides additional 

IMPLEMENTATION DEFINED

 fault status information for exceptions

that are taken to EL1. This register is not used in Cortex

®

-A55.

Bit field descriptions

AFSR1_EL1 is a 64-bit register, and is part of:
• The Exception and fault handling registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Figure 3-88: AFSR1_EL1 bit assignments

31

RES0

0

Reserved

63

32

Reserved, [63:32]

 

Reserved.

RES0, [31:0]

RES0

Reserved.

Configurations

AFSR1_EL1 bits [31:0] are architecturally mapped to AArch32 register AIFSR. See 

3.1.10

AIFSR, Auxiliary Instruction Fault Status Register

 on page 101.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.12 AFSR1_EL2, Auxiliary Fault Status Register 1, EL2

AFSR1_EL2 provides additional 

IMPLEMENTATION DEFINED

 fault status information for exceptions

that are taken to EL2. This register is not used in the Cortex

®

-A55 core.

Bit field descriptions

AFSR1_EL2 is a 64-bit register, and is part of:
• The Virtualization registers functional group.
• The Exception and fault handling registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

243

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

• The 

IMPLEMENTATION DEFINED

 functional group.

Figure 3-89: AFSR1_EL2 bit assignments

31

RES0

0

Reserved

63

32

Reserved, [63:32]

 

Reserved.

RES0, [31:0]

RES0

Reserved.

Configurations

AArch64 System register AFSR1_EL2 bits [31:0] are architecturally mapped to AArch32

System register HAIFSR. See 

3.1.51 HAIFSR, Hyp Auxiliary Instruction Fault Status Syndrome

Register

 on page 150.

If EL2 is not implemented, this register is 

RES0

 from EL3.

This register has no effect if EL2 is not enabled in the current Security state.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.13 AFSR1_EL3, Auxiliary Fault Status Register 1, EL3

AFSR1_EL3 provides additional 

IMPLEMENTATION DEFINED

 fault status information for exceptions

that are taken to EL3. This register is not used in the Cortex

®

-A55 core.

Bit field descriptions

AFSR1_EL3 is a 64-bit register, and is part of:
• The Exception and fault handling registers functional group.
• The Security registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

244

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-90: AFSR1_EL3 bit assignments

31

RES0

0

Reserved

63

32

Reserved, [63:32]

 

Reserved.

RES0, [31:0]

RES0

Reserved.

Configurations

There are no configuration notes.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.14 AIDR_EL1, Auxiliary ID Register, EL1

AIDR_EL1 provides 

IMPLEMENTATION DEFINED

 identification information. This register is not used in

the Cortex

®

-A55 core.

Bit field descriptions

AIDR_EL1 is a 64-bit register, and is part of:
• The Identification registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

This register is Read Only.

Figure 3-91: AIDR_EL1 bit assignments

31

RES0

0

Reserved

63

32

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

245

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Reserved, [63:32]

 

Reserved.

RES0, [31:0]

 

Reserved, 

RES0

.

Configurations

AIDR_EL1 bits [31:0] are architecturally mapped to AArch32 register AIDR. See 

3.1.9 AIDR,

Auxiliary ID Register

 on page 100.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.2.15 AMAIR_EL1, Auxiliary Memory Attribute Indirection Register, EL1

AMAIR_EL1 provides 

IMPLEMENTATION DEFINED

 memory attributes for the memory regions that are

specified by MAIR_EL1. This register is not used in the Cortex

®

-A55 core.

Bit field descriptions

AMAIR_EL1 is a 64-bit register, and is part of:
• The Virtual memory control registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Figure 3-92: AMAIR_EL1 bit assignments

0

63

RES

0

RES0, [63:0]

RES0

Reserved.

Configurations

AArch64 System register AMAIR_EL1 bits [31:0] are architecturally mapped to AArch32

System register AMAIR0. See 

3.1.11 AMAIR0, Auxiliary Memory Attribute Indirection

Register 0

 on page 102.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

246

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

AArch64 System register AMAIR_EL1 bits [63:32] are architecturally mapped to AArch32

System register AMAIR1. See 

3.1.12 AMAIR1, Auxiliary Memory Attribute Indirection

Register 1

 on page 103.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.16 AMAIR_EL2, Auxiliary Memory Attribute Indirection Register, EL2

AMAIR_EL2 provides 

IMPLEMENTATION DEFINED

 memory attributes for the memory regions that are

specified by MAIR_EL2. This register is not used in the Cortex

®

-A55 core.

Bit field descriptions

AMAIR_EL2 is a 64-bit register, and is part of:
• The Virtualization registers functional group.
• The Virtual memory control registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Figure 3-93: AMAIR_EL1 bit assignments

0

63

RES

0

RES0, [63:0]

RES0

Reserved.

Configurations

AArch64 System register AMAIR_EL2 bits [31:0] are architecturally mapped to AArch32

System register HAMAIR0. See 

3.1.52 HAMAIR0, Hyp Auxiliary Memory Attribute

Indirection Register 0

 on page 151.

AArch64 System register AMAIR_EL2 bits [63:32] are architecturally mapped to AArch32

System register HAMAIR1. See 

3.1.53 HAMAIR1, Hyp Auxiliary Memory Attribute

Indirection Register 1

 on page 152.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

247

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.17 AMAIR_EL3, Auxiliary Memory Attribute Indirection Register, EL3

AMAIR_EL3 provides 

IMPLEMENTATION DEFINED

 memory attributes for the memory regions that are

specified by MAIR_EL3. This register is not used in the Cortex

®

-A55 core.

Bit field descriptions

AMAIR_EL3 is a 64-bit register, and is part of:
• The Virtual memory control registers functional group.
• The Security registers functional group.
• The 

IMPLEMENTATION DEFINED

 functional group.

Figure 3-94: AMAIR_EL3 bit assignments

0

63

RES

0

RES0, [63:0]

RES0

Reserved.

Configurations

There are no configuration notes.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.18 ATCR_EL1, Auxiliary Translation Control Register, EL1

The ATCR_EL1 determines the values of 

Page-Based Hardware Attributes

 (PBHA) on translation

table walks memory access in EL1 translation regime.

Bit field descriptions

ATCR_EL1 is a 64-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

248

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-95: ATCR_EL1 bit assignments

RES

0

63

14

0

1

2

3

4

5

6

7

8

9

10

11

12

13

HWVAL160
HWVAL159
HWVAL060
HWVAL059

HWEN059
HWEN060
HWEN159
HWEN160

RES0, [63:14]

 

RES0

.

HWVAL160, [13]

 

Indicates the value of PBHA[1] on translation table walks memory

access targeting the base address defined by TTBR1_EL1 if

HWEN160 is set.

HWVAL159, [12]

 

Indicates the value of PBHA[0] on translation table walks memory

access targeting the base address defined by TTBR1_EL1 if

HWEN159 is set.

RES0, [11:10]

 

RES0

.

HWVAL060, [9]

 

Indicates the value of PBHA[1] translation table walks memory

access targeting the base address defined by TTBR0_EL1 if

HWEN060 is set.

HWVAL059, [8]

 

Indicates the value of PBHA[1] translation table walks memory

access targeting the base address defined by TTBR0_EL1 if

HWEN059 is set.

RES0, [7:6]

 

RES0

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

249

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

HWEN160, [5]

 

Enables PBHA[1] translation table walks memory access targeting the

base address defined by TTBR1_EL1. If this bit is clear, PBHA[1] on

translation table walks is 0.

HWEN159, [4]

 

Enables PBHA[0] translation table walks memory access targeting the

base address defined by TTBR1_EL1. If this bit is clear, PBHA[0] on

translation table walks is 0.

RES0, [3:2]

 

RES0

.

HWEN060, [1]

 

Enables PBHA[1] translation table walks memory access targeting the

base address defined by TTBR0_EL1. If this bit is clear, PBHA[1] on

translation table walks is 0.

HWEN059, [0]

 

Enables PBHA[0] translation table walks memory access targeting the

base address defined by TTBR0_EL1. If this bit is clear, PBHA[0] on

translation table walks is 0.

Configurations

AArch64 register ATCR_EL1 is mapped to AArch32 register ATTBCR (NS).

At EL2 with HCR_EL2.E2H set, accesses to ATCR_EL1 are remapped to access ATCR_EL2.

Usage constraints

Accessing the ATCR_EL1

To access the ATCR_EL1:

MRS Xt , S< 3   0  c15   c7  0> ; Read ATCR_EL1 into Xt 

MSR S < 3   0  c15   c7  0 > , Xt   ; Write Xt to ATCR_EL1

This syntax is encoded with the following settings in the instruction encoding:

Op0

Op1

CRn

CRm

Op2

3

0

c15

c7

0

Accessibility

ATCR_EL1 is accessible as follows:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

250

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Control

Accessibility

E2H

TGE

NS

EL0

EL1

EL2

EL3

ATCR_EL1

x

x

0

-

RW

n/a

RW

ATCR_EL1

0

0

1

-

RW

RW

RW

ATCR_EL1

0

1

1

-

n/a

RW

RW

ATCR_EL1

1

0

1

-

RW

ATCR_EL2

RW

ATCR_EL1

1

1

1

-

n/a

ATCR_EL2

RW

ATCR_EL1 is also accessible using ATCR_EL12 when HCR.EL2.E2H is set. See

3.2.19 ATCR_EL12, Alias to Auxiliary Translation Control Register EL1

 on page

251.

Traps and enables

Rules of traps and enables for this register are the same as TCR_EL1. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.2.19 ATCR_EL12, Alias to Auxiliary Translation Control Register EL1

The ATCR_EL12 alias allows access to ATCR_EL1 at EL2 or EL3 when HCR_EL2.E2H is set to 1.

Usage constraints

Accessing the ATCR_EL12

To access the ATCR_EL1 using the ATCR_EL12 alias:

MRS Xt , S< 3   5  c15   c7  0> ; Read ATCR_EL12/ATCR_EL1 into Xt  

MSR S < 3   5  c15   c7  0 > , Xt   ; Write Xt to ATCR_EL12/ATCR_EL1

This syntax is encoded with the following settings in the instruction encoding:

Op0

Op1

CRn

CRm

Op2

3

5

15

7

0

Accessibility

ATCR_EL12 is accessible as follows:

Control

Accessibility

E2H

TGE

NS

EL0

EL1

EL2

EL3

ATCR_EL12

x

x

0

-

-

n/a

-

ATCR_EL12

0

0

1

-

-

-

-

ATCR_EL12

0

1

1

-

n/a

-

-

ATCR_EL12

1

0

1

-

-

ATCR_EL1

ATCR_EL1

ATCR_EL12

1

1

1

-

n/a

ATCR_EL1

ATCR_EL1

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

251

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Traps and enables

All traps that are associated with the ATCR_EL1 register that apply at EL2 or EL3 also apply

to the ATCR_EL12 alias.

This alias is only accessible when HCR_EL2.E2H == 1.

When HCR_EL2.E2H == 0, access to this alias is 

UNDEFINED

.

3.2.20 ATCR_EL2, Auxiliary Translation Control Register, EL2

The ATCR_EL2 determines the values of 

Page-Based Hardware Attributes

 (PBHA) on translation

table walks memory access in EL2 translation regime.

Bit field descriptions

ATCR_EL2 is a 64-bit register.

Figure 3-96: ATCR_EL2 bit assignments

RES

0

63

14

0

1

2

3

4

5

6

7

8

9

10

11

12

13

HWVAL160
HWVAL159
HWVAL060
HWVAL059

HWEN059
HWEN060
HWEN159
HWEN160

RES0, [63:14]

 

RES0

.

HWVAL160, [13]

 

Indicates the value of PBHA[1] on translation table walks memory

access targeting the base address defined by TTBR1_EL2 if

HWEN160 is set.

HWVAL159, [12]

 

Indicates the value of PBHA[0] on translation table walks memory

access targeting the base address defined by TTBR1_EL2 if

HWEN159 is set.

RES0, [11:10]

 

RES0

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

252

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

HWVAL060, [9]

 

Indicates the value of PBHA[1] translation table walks memory

access targeting the base address defined by TTBR0_EL2 if

HWEN060 is set.

HWVAL059, [8]

 

Indicates the value of PBHA[1] translation table walks memory

access targeting the base address defined by TTBR0_EL2 if

HWEN059 is set.

RES0, [7:6]

 

RES0

.

HWEN160, [5]

 

Enables PBHA[1] translation table walks memory access targeting the

base address defined by TTBR1_EL2. If this bit is clear, PBHA[1] on

translation table walks is 0.

HWEN159, [4]

 

Enables PBHA[0] translation table walks memory access targeting the

base address defined by TTBR1_EL2. If this bit is clear, PBHA[0] on

translation table walks is 0.

RES0, [3:2]

 

RES0

.

HWEN060, [1]

 

Enables PBHA[1] translation table walks memory access targeting the

base address defined by TTBR0_EL2. If this bit is clear, PBHA[1] on

translation table walks is 0.

HWEN059, [0]

 

Enables PBHA[0] translation table walks memory access targeting the

base address defined by TTBR0_EL2. If this bit is clear, PBHA[0] on

translation table walks is 0.

Configurations

AArch64 ATCR_EL2 register is architecturally mapped to AArch32 register AHTCR.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

253

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Usage constraints

Accessing the ATCR_EL2

To access the ATCR_EL2:

MRS Xt, S< 3   4  c15   c7  0> ; Read ATCR_EL2 into Xt  

MSR S < 3   4 c15   c7 0 > , Xt   ; Write Xt to ATCR_EL2

This syntax is encoded with the following settings in the instruction encoding:

Op0

Op1

CRn

CRm

Op2

3

4

c15

c7

0

Accessibility

ATCR_EL2 is accessible as follows:

EL0 (NS)

EL1 (NS)

EL1 (S)

EL2

EL3 (SCR.NS=1)

EL3 (SCR.NS=0)

-

-

-

RW

RW

RW

3.2.21 ATCR_EL3, Auxiliary Translation Control Register, EL3

The ATCR_EL3 determines the values of 

Page-Based Hardware Attributes

 (PBHA) on translation

table walks memory access in EL3 translation regime.

Bit field descriptions

ATCR_EL3 is a 64-bit register.

Figure 3-97: ATCR_EL3 bit assignments

res0

63

0

1

2

7

8

9

10

HWVAL60

HWVAL59

HWEN59
HWEN60

RES0, [63:10]

 

RES0

.

HWVAL60, [9]

 

Indicates the value of PBHA[1] translation table walks memory

access if HWEN60 is set.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

254

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

HWVAL59, [8]

 

Indicates the value of PBHA[1] translation table walks memory

access if HWEN59 is set.

RES0, [7:2]

 

RES0

.

HWEN60, [1]

 

Enables PBHA[1] translation table walks memory access. If this bit is

clear, PBHA[1] on translation table walks is 0.

HWEN59, [0]

 

Enables PBHA[0] translation table walks memory access. If this bit is

clear, PBHA[0] on translation table walks is 0.

Configurations

AArch64 register ATCR_EL3 is architecturally mapped to AArch32 register ATCR (S).

Usage constraints

Accessing the ATCR_EL3

To access the ATCR_EL3:

MRS Xt , < 3  6 c15  c7 0>  ; Read ATCR_EL3 into Xt 

MSR S < 3   6 c15   c7 0 > , Xt   ; Write Xt to ATCR_EL3

This syntax is encoded with the following settings in the instruction encoding:

Op0

Op1

CRn

CRm

Op2

3

6

c15

c7

0

Accessibility

ATCR_EL3 is accessible as follows:

EL0

EL1 (NS)

EL1 (S)

EL2

EL3 (SCR.NS=1)

EL3 (SCR.NS=0)

-

-

-

-

RW

RW

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

255

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.22 AVTCR_EL2, Auxiliary Virtualized Translation Control Register, EL2

The AVTCR_EL2 determines the values of 

Page-Based Hardware Attributes

 (PBHA) on stage 2

translation table walks memory access in EL1 Non-secure translation regime if stage 2 is enable.

Bit field descriptions

AVTCR_EL2 is a 64-bit register.

Figure 3-98: AVTCR_EL2 bit assignments

RES

0

63

0

1

2

7

8

9

10

HWVAL60

HWVAL59

HWEN59
HWEN60

RES0, [63:10]

 

RES0

.

HWVAL60, [9]

 

Indicates the value of PBHA[1] translation table walks memory

access if HWEN60 is set.

HWVAL59, [8]

 

Indicates the value of PBHA[1] translation table walks memory

access if HWEN59 is set.

RES0, [7:2]

 

RES0

.

HWEN60, [1]

 

Enables PBHA[1] translation table walks memory access. If this bit is

clear, PBHA[1] on translation table walks is 0.

HWEN59, [0]

 

Enables PBHA[0] translation table walks memory access. If this bit is

clear, PBHA[0] on translation table walks is 0.

Configurations

AArch64 register AVTCR_EL2 is architecturally mapped to AArch32 register AVTCR.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

256

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Usage constraints

Accessing the AVTCR_EL2

To access the AVTCR_EL2:

MRS  Xt , S< 3  4  c15  c7  1> ; Read AVTCR_EL2 into Xt   

MSR S < 3   4  c15   c7  1 > , Xt   ; Write Xt to AVTCR_EL2

This syntax is encoded with the following settings in the instruction encoding:

Op0

Op1

CRn

CRm

Op2

3

4

c15

c7

1

Accessibility

AVTCR_EL2 is accessible as follows:

EL0

EL1 (NS)

EL1 (S)

EL2

EL3 (SCR.NS=1)

EL3 (SCR.NS=0)

-

-

-

RW

RW

RW

3.2.23 CCSIDR_EL1, Cache Size ID Register, EL1

The CCSIDR_EL1 provides information about the architecture of the currently selected cache.

Bit field descriptions

CCSIDR_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Figure 3-99: CCSIDR_EL1 bit assignments

WB

31

28 27

12

3

0

RA

LineSize

WT

30 29

13

2

WA

NumSets

Associativity

Reserved

63

32

Reserved, [63:32]

 

Reserved.

WT, [31]

Indicates whether the selected cache level supports Write-Through:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

257

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0

Cache Write-Through is not supported at any level.

For more information about encoding, see 

CCSIDR_EL1 encodings

on page 259.

WB, [30]

Indicates whether the selected cache level supports Write-Back. Permitted values are:

0

Write-Back is not supported.

1

Write-Back is supported.

For more information about encoding, see 

CCSIDR_EL1 encodings

on page 259.

RA, [29]

Indicates whether the selected cache level supports read-allocation. Permitted values are:

0

Read-allocation is not supported.

1

Read-allocation is supported.

For more information about encoding, see 

CCSIDR_EL1 encodings

on page 259.

WA, [28]

Indicates whether the selected cache level supports write-allocation. Permitted values are:

0

Write-allocation is not supported.

1

Write-allocation is supported.

For more information about encoding, see 

CCSIDR_EL1 encodings

on page 259.

NumSets, [27:13]

(Number of sets in cache) - 1. Therefore, a value of 0 indicates one set in the cache. The

number of sets does not have to be a power of 2.

For more information about encoding, see 

CCSIDR_EL1 encodings

 on page 259.

Associativity, [12:3]

(Associativity of cache) - 1. Therefore, a value of 0 indicates an associativity of 1. The

associativity does not have to be a power of 2.

For more information about encoding, see 

CCSIDR_EL1 encodings

 on page 259.

LineSize, [2:0]

(Log

2

(Number of bytes in cache line)) - 4. For example:

 

For a line length of 16 bytes: Log

2

(16) = 4, LineSize entry = 0. This is the minimum line

length.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

258

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

 

For a line length of 32 bytes: Log

2

(32) = 5, LineSize entry = 1.

For more information about encoding, see 

CCSIDR_EL1 encodings

 on page 259.

Configurations

CCSIDR_EL1 bits [31:0] are architecturally mapped to AArch32 register CCSIDR. See 

3.1.15

CCSIDR, Cache Size ID Register

 on page 107.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

CCSIDR_EL1 encodings

The following table shows the individual bit field and complete register encodings for the

CCSIDR_EL1.

Table 3-70: CCSIDR encodings

CSSELR

Register bit field encoding

Level

InD

Cache

Size

Complete register

encoding

WT

WB

RA

WA

NumSets Associativity LineSize

16KB

7007E01A

003F

003

2

32KB

700FE01A

007F

003

2

0b000 0b0

L1 Data cache

64KB

701FE01A

0

1

1

1

00FF

003

2

16KB

2007E01A

003F

003

2

32KB

200FE01A

007F

003

2

0b000 0b1

L1 Instruction

cache

64KB

201FE01A

0

0

1

0

00FF

003

2

Not

present

See following Note.

-

-

-

-

-

-

-

64KB

701FE01A

00FF

003

2

128KB

703FE01A

01FF

003

2

0b001 0b0

L2 cache

256KB

707FE01A

0

1

1

1

03FF

003

2

0b001 0b1

Reserved

-

-

-

-

-

-

-

-

-

256KB

701FE07A

000F

00F

2

512KB

703FE07A

01FF

00F

2

1MB

707FE07A

03FF

00F

2

2MB

70FFE07A

07FF

00F

2

4MB

71FFE07A

0FFF

00F

2

0b010 0b0

L3 cache

8MB

73FFE07A

0

1

1

1

1FFF

00F

2

0b0101

 -

0b1111

Reserved

-

-

-

-

-

-

-

-

-

If no L2 cache is present then the L3 cache becomes the L2 cache from the

perspective of the core. This means the CCSIDR will return the information for the

L3 cache when the L2 cache is selected with the CSSELR, and will return 

UNKNOWN

information if the L3 cache is selected with the CSSELR.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

259

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.24 CLIDR_EL1, Cache Level ID Register, EL1

The CLIDR_EL1 identifies the type of cache, or caches, implemented at each level, up to a

maximum of seven levels.

It also identifies the 

Level of Coherency

 (LoC) and 

Level of Unification

 (LoU) for the cache hierarchy.

Bit field descriptions

CLIDR_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Figure 3-100: CLIDR_EL1 bit assignments

Ctype3 Ctype2 Ctype1

30 29

27 26

24 23

21 20

9 8

6 5

3 2

0

LoUU

LoC

ICB

63

32

RES

0

LoUIS

33

RES0, [63:33]

RES0

Reserved.

ICB, [32:30]

Inner cache boundary. This field indicates the boundary between the inner and the outer

domain:

001

L1 cache is the highest inner level.

010

L2 cache is the highest inner level.

011

L3 cache is the highest inner level.

LoUU, [29:27]

Indicates the Level of Unification Uniprocessor for the cache hierarchy:

000

No levels of cache need to cleaned or invalidated when cleaning or

invalidating to the Point of Unification.

LoC, [26:24]

Indicates the Level of Coherency for the cache hierarchy:

001

L2 and L3 cache are not implemented.

010

L2 or L3 cache is not implemented.

011

L2 and L3 cache are implemented.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

260

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

LoUIS, [23:21]

Indicates the 

Level of Unification Inner Shareable

 (LoUIS) for the cache hierarchy.

0b000

No levels of cache need to be cleaned or invalidated when cleaning

or invalidating to the Point of Unification.

RES0, [20:9]

No cache at levels L7 down to L4.

RES0

Reserved.

Ctype3, [8:6]

Indicates the type of cache if the cluster implements L3 cache. If present, unified instruction

and data caches at Level-3:

000

L2 or L3 cache is not implemented.

100

L2 and L3 cache are implemented.

If Ctype2 has a value of 

0b000

, the value of Ctype3 must be ignored.

Ctype2, [5:3]

Indicates the type of cache if the core implements L2 cache. If present, unified instruction

and data caches at Level-2:

000

L2 and L3 cache are not implemented.

100

L2 or L3 cache is implemented as a unified cache.

Ctype1, [2:0]

Indicates the type of cache implemented at L1:

011

Separate instruction and data caches at L1.

Configurations

CLIDR_EL1 is architecturally mapped to AArch32 register CLIDR. See 

3.1.16 CLIDR, Cache

Level ID Register

 on page 110.

3.2.25 CPACR_EL1, Architectural Feature Access Control Register, EL1

The CPACR_EL1 controls access to Advanced SIMD and floating-point functionality from EL0, EL1,

and EL3.

Bit field descriptions

CPACR_EL1 is a 64-bit register, and is part of the Other system control registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

261

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-101: CPACR_EL1 bit assignments

31

0

FPEN

19

20

21

22

RES0

Reserved

63

32

Reserved, [63:32]

 

Reserved.

RES0, [31:22]

RES0

Reserved.

FPEN, [21:20]

Traps instructions that access registers associated with Advanced SIMD and floating-point

execution to trap to EL1 when executed from EL0 or EL1. The possible values are:

0b00

Trap any instruction in EL0 or EL1 that uses registers associated with

Advanced SIMD and floating-point execution. The reset value is 

0b00

.

0b01

Trap any instruction in EL0 that uses registers associated with

Advanced SIMD and floating-point execution. Instructions in EL1 are

not trapped.

0b10

Trap any instruction in EL0 or EL1 that uses registers associated with

Advanced SIMD and floating-point execution.

0b11

No instructions are trapped.

This field is 

RES0

 if Advanced SIMD and floating-point are not implemented.

RES0, [19:0]

RES0

Reserved.

Configurations

CPACR_EL1 bits [31:0] are architecturally mapped to AArch32 register CPACR. See 

3.1.17

CPACR, Architectural Feature Access Control Register

 on page 112.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

262

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.26 CPTR_EL2, Architectural Feature Trap Register, EL2

The CPTR_EL2 controls trapping to EL2 for accesses to CPACR, trace functionality and registers

associated with Advanced SIMD and floating-point execution. It also controls EL2 access to this

functionality.

Bit field descriptions

CPTR_EL2 is a 64-bit register, and is part of the Virtualization registers functional group.

Figure 3-102: CPTR_EL2 bit assignments

31

0

TFP

TCPAC

20 19

21

10 9

11

TTA

13 12

14

30

RES0

RES1

Reserved

63

32

Reserved, [63:32]

 

Reserved.

TTA, [20]

Trap Trace Access.

This bit is not implemented. 

RES0

.

Configurations

CPTR_EL2 bits [31:0] are architecturally mapped to AArch32 register HCPTR.

RW fields in this register reset to 

UNKNOWN

 values.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.27 CPTR_EL3, Architectural Feature Trap Register, EL3

The CPTR_EL3 controls trapping to EL3 of access to CPACR_EL1, CPTR_EL2, trace functionality

and registers associated with Advanced SIMD and floating-point execution.

It also controls EL3 access to trace functionality and registers associated with Advanced SIMD and

floating-point execution.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

263

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Bit field descriptions

CPTR_EL3 is a 64-bit register, and is part of the Security registers functional group.

Figure 3-103: CPTR_EL3 bit assignments

31

0

TFP

10 9

11

30

TCPAC

19

20

21

TTA

RES0

Reserved

63

32

Reserved, [63:32]

 

Reserved.

TTA, [20]

Trap Trace Access.

Not implemented. 

RES0

.

TFP, [10]

This causes instructions that access the registers that are associated with Advanced SIMD

or floating-point execution to trap to EL3 when executed from any Exception level, unless

trapped to EL1 or EL2. The possible values are: are:

0

Does not cause any instruction to be trapped. This is the reset value if the Advanced

SIMD and floating-point support is implemented.

1

Causes any instructions that use the registers that are associated with Advanced SIMD

or floating-point execution to be trapped. This is always the value if the Advanced

SIMD and floating-point support is not implemented.

Configurations

There are no configuration notes.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

264

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.28 CPUACTLR_EL1, CPU Auxiliary Control Register, EL1

The CPUACTLR_EL1 provides 

IMPLEMENTATION DEFINED

 configuration and control options for the

core.

Bit field descriptions

CPUACTLR_EL1 is a 64-bit register, and is part of the 

IMPLEMENTATION DEFINED

 registers functional

group.

Figure 3-104: CPUACTLR_EL1 bit assignments

0

Reserved

63

Reserved, [63:0]

 

Reserved for Arm

®

 internal use.

Configurations

CPUACTLR_EL1 is:
• Common to the Secure and Non-secure states.
• Mapped to the AArch32 CPUACTLR register. See 

3.1.18 CPUACTLR, CPU Auxiliary

Control Register

 on page 112.

Usage constraints

Accessing the CPUACTLR_EL1

The CPU Auxiliary Control Register can be written only when the system is idle. Arm

recommends that you write to this register after a Cold reset, before the MMU is enabled.

Setting many of these bits can cause significantly lower performance on your code.

Therefore, Arm strongly recommends that you do not modify this register unless directed by

Arm.

This register is accessible as follows:

This register can be read with the MRS instruction using the following syntax:

MRS <Xt>,<systemreg>

This register can be written with the MSR instruction using the following syntax:

MSR <systemreg>, <Xt>

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

265

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

This syntax is encoded with the following settings in the instruction encoding:

<systemreg>

op0

op1

CRn

CRm

op2

S3_0_C15_C1_0

11

000

1111

0001

000

Accessibility

This register is accessible in software as follows:

Control

Accessibility

<systemreg>

E2H

TGE

NS

EL0

EL1

EL2

EL3

S3_0_C15_C1_0

x

x

0

-

RW

n/a

RW

S3_0_C15_C1_0

x

0

1

-

RW

RW

RW

S3_0_C15_C1_0

x

1

1

-

n/a

RW

RW

'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not

possible.

Traps and enables

For a description of the prioritization of any generated exceptions, see 

Synchronous exception

prioritization

 in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.29 CPUCFR_EL1, CPU Configuration Register, EL1

The CPUCFR_EL1 provides configuration information for the core.

Bit field descriptions

CPUCFR_EL1 is a 64-bit register, and is part of the 

IMPLEMENTATION DEFINED

 registers functional

group.

This register is read-only.

Figure 3-105: CPUCFR_EL1 bit assignments

31

0

ECC

1

3 2

RES0

Reserved

63

32

SCU

Reserved, [63:32]

 

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

266

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

RES0, [31:3]

 

Reserved, 

RES0

.

SCU, [2]

Indicates whether the SCU is present or not. The value is:

0

The SCU is present.

ECC, [1:0]

Indicates whether ECC is present or not. The possible values are:

00

ECC is not present.

01

ECC is present.

Configurations

CPUCFR_EL1 bits [31:0] are architecturally mapped to AArch32 register CPUCFR. See

3.1.19 CPUCFR, CPU Configuration Register

 on page 114.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

Usage constraints

Accessing the CPUCFR_EL1

This register can be read with the MRS instruction using the following syntax:

MRS <Xt>,<systemreg>

To access the CPUCFR_EL1:

MRS <Xt>, CPUCFR_EL1 ; Read CPUCFR_EL1 into Xt

This syntax is encoded with the following settings in the instruction encoding:

<systemreg>

op0

op1

CRn

CRm

op2

S3_0_C15_C0_0

11

000

1111

0000

000

Accessibility

This register is accessible in software as follows:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

267

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Control

Accessibility

<systemreg>

E2H

TGE

NS

EL0

EL1

EL2

EL3

S3_0_C15_C0_0

x

x

0

-

RO

n/a

RO

S3_0_C15_C0_0

x

0

1

-

RO

RO

RO

S3_0_C15_C0_0

x

1

1

-

n/a

RO

RO

'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not

possible.

3.2.30 CPUECTLR_EL1, CPU Extended Control Register, EL1

The CPUECTLR_EL1 provides extra 

IMPLEMENTATION DEFINED

 configuration and control options for

the core.

Bit field descriptions

CPUECTLR_EL1 is a 64-bit register, and is part of the 64-bit registers functional group.

Figure 3-106: CPUECTLR_EL1 bit assignments

RES

0

EXTLLC

40 39 38 37 36

31

0

25

26

24

16 15

13 12

10 9

1

27

28

29

30

63

L3WSCTL
L2WSCTL
L1WSCTL

ATOM

L2FLUSH

L3PCTL
L1PCTL

RES0, [63:40]

RES0

Reserved.

ATOM, [39:38]

00

Atomic instructions are performed near if they hit in the cache in

a unique state, or far if they miss or are shared. For more details,

see 

2.6.4.1 Memory system implementation

 on page 60. This is the

default.

01

Force all cacheable atomic instructions to be executed near, in the L1

cache.

10

Force most cacheable atomic instructions to be executed far, in the

L3 cache or beyond.

11

Force cacheable load atomics, including SWP and CAS, to be

executed near, in the L1 cache. Store atomics are performed near

if they hit in the cache in a unique state, or far if they miss or are

shared.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

268

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

L2FLUSH, [37]

0

L2 cache flushes, for example during a core powerdown sequence,

cause clean lines to be allocated into the L3 cache rather than

discarding them. This can improve performance if it is known that the

data is likely to be used soon by another core.

RES0, [36:31]

RES0

Reserved.

L3WSCTL, [30:29]

Write streaming no-L3-allocate threshold. The possible values are:

00

128th consecutive streaming cache line does not allocate in the L1,

L2, or L3 cache.

01

1024th consecutive streaming cache line does not allocate in the L1,

L2, or L3 cache. This is the reset value.

10

4096th consecutive streaming cache line does not allocate in the L1,

L2, or L3 cache.

11

Disables streaming. All write-allocate lines allocate in the L1, L2, or

L3 cache.

L2WSCTL, [28:27]

Write streaming no-L2-allocate threshold. The possible values are:

00

16th consecutive streaming cache line does not allocate in the L1 or

L2 cache.

01

128th consecutive streaming cache line does not allocate in the L1

or L2 cache. This is the reset value.

10

512th consecutive streaming cache line does not allocate in the L1

or L2 cache.

11

Disables streaming. All write-allocate lines allocate in the L1 or L2

cache.

L1WSCTL, [26:25]

Write streaming no-L1-allocate threshold. The possible values are:

00

4th consecutive streaming cache line does not allocate in the L1

cache. This is the reset value.

01

64th consecutive streaming cache line does not allocate in the L1

cache.

10

128th consecutive streaming cache line does not allocate in the L1

11

Disables streaming. All write-allocate lines allocate in the L1 cache.

RES0, [24:16]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

269

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

L1PCTL, [15:13]

L1 Data prefetch control. The value of the L1PCTL field determines the maximum number

of outstanding data prefetches allowed in the L1 memory system (not counting the data

prefetches generated by software load/

PLD

 instructions).

000

Prefetch disabled.

001

1 outstanding prefetch allowed.

010

2 outstanding prefetches allowed.

011

3 outstanding prefetches allowed.

100

4 outstanding prefetches allowed.

101

5 outstanding prefetches allowed. This is the reset value.

110

6 outstanding prefetches allowed.

111

7 outstanding prefetches allowed.

L3PCTL, [12:10]

L3 Data prefetch control. The value of the L3PCTL field determines the approximate distance

between the L1 prefetcher and requests sent to the L3 memory system. Increasing this

distance may improve performance on systems with higher latency to main memory, but

increasing it too far can reduce performance.

The L3 memory system may have more outstanding access to the system

than this number.

000

Fetch 16 lines ahead.

001

Fetch 32 lines ahead.

010

Reserved.

011

Reserved.

100

Disable L3 prefetching.

101

Fetch 2 lines ahead.

110

Fetch 4 lines ahead.

111

Fetch 8 lines ahead. This is the reset value.

RES0, [9:1]

RES0

Reserved.

EXTLLC, [0]

0

Indicates that an external Last-level cache is present in the system,

and that the DataSource field on the requester CHI interface

indicates when data is returned from the LLC. This is used to control

how the LL_CACHE* PMU events count.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

270

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Configurations

The CPUECTLR_EL1 is mapped to the AArch32 CPUECTLR register. See 

3.1.20 CPUECTLR,

CPU Extended Control Register

 on page 115.

Usage constraints

Accessing the CPUECTLR_EL1

The CPUECTLR_EL1 can be written dynamically.

This register is accessible as follows:

This register can be read with the MRS instruction using the following syntax:

MRS <Xt>,<systemreg>

This register can be written with the MRS instruction using the following syntax:

MSR <systemreg>, <Xt>

This syntax is encoded with the following settings in the instruction encoding:

<systemreg>

op0

op1

CRn

CRm

op2

CPUECTLR_EL1

11

000

1111

0001

100

Accessibility

This register is accessible in software as follows:

Control

Accessibility

<systemreg>

E2H

TGE

NS

EL0

EL1

EL2

EL3

CPUECTLR_EL1

x

x

0

-

RW

n/a

RW

CPUECTLR_EL1

x

0

1

-

RW

RW

RW

CPUECTLR_EL1

x

1

1

-

n/a

RW

RW

'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not

possible.

Traps and enables

For a description of the prioritization of any generated exceptions, see 

Synchronous exception

prioritization

 in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

271

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.31 CPUPCR_EL3, CPU Private Control Register, EL3

The CPUPCR_EL3 provides 

IMPLEMENTATION DEFINED

 configuration and control options for the

core.

Bit field descriptions

CPUPCR_EL3 is a 64-bit register, and is part of the 

IMPLEMENTATION DEFINED

 registers functional

group.

Figure 3-107: CPUPCR_EL3 bit assignments

0

Reserved

63

Reserved, [63:0]

 

Reserved for Arm

®

 internal use.

Configurations

CPUPCR_EL3 is:
• Only accessible in Secure state.
• Mapped to the AArch32 CPUPCR register. See 

3.1.21 CPUPCR, CPU Private Control

Register

 on page 119.

Usage constraints

Accessing the CPUPCR_EL3

The CPUPCR_EL3 can be written only when the system is idle. Arm recommends that you

write to this register after a powerup reset, before the MMU is enabled.

Writing to this register might cause 

UNPREDICTABLE

 behaviors. Therefore, Arm strongly

recommends that you do not modify this register unless directed by Arm.

This register is accessible as follows:

This register can be read with the MRS instruction using the following syntax:

MRS <Xt>,<systemreg>

This register can be written with the MSR instruction using the following syntax:

MSR <systemreg>, <Xt>

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

272

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

This syntax is encoded with the following settings in the instruction encoding:

<systemreg>

op0

op1

CRn

CRm

op2

S3_6_C15_8_1

11

110

1111

1000

001

Accessibility

This register is accessible in software as follows:

Control

Accessibility

<systemreg>

E2H

TGE

NS

EL0

EL1

EL2

EL3

S3_6_C15_8_1

x

x

0

-

-

n/a

RW

S3_6_C15_8_1

x

0

1

-

-

-

RW

S3_6_C15_8_1

x

1

1

-

n/a

-

RW

'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not

possible.

Traps and enables

For a description of the prioritization of any generated exceptions, see 

Synchronous exception

prioritization

 in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.32 CPUPMR_EL3, CPU Private Mask Register, EL3

The CPUPMR_EL3 provides 

IMPLEMENTATION DEFINED

 configuration and control options for the

core.

Bit field descriptions

CPUPMR_EL3 is a 64-bit register, and is part of the 

IMPLEMENTATION DEFINED

 registers functional

group.

Figure 3-108: CPUPMR_EL3 bit assignments

0

Reserved

63

Reserved, [63:0]

 

Reserved for Arm

®

 internal use.

Configurations

CPUPMR_EL3 is:
• Only accessible from Secure state.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

273

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

• Mapped to the AArch32 CPUPMR register. See 

3.1.22 CPUPMR, CPU Private Mask

Register

 on page 121.

Usage constraints

Accessing the CPUPMR_EL3

The CPUPMR_EL3 can be written only when the system is idle. Arm recommends that you

write to this register after a powerup reset, before the MMU is enabled.

Writing to this register might cause 

UNPREDICTABLE

 behaviors. Therefore, Arm strongly

recommends that you do not modify this register unless directed by Arm.

This register is accessible as follows:

This register can be read with the MRS instruction using the following syntax:

MRS <Xt>,<systemreg>

This register can be written with the MSR instruction using the following syntax:

MSR <systemreg>, <Xt>

This syntax is encoded with the following settings in the instruction encoding:

<systemreg>

op0

op1

CRn

CRm

op2

S3_6_C15_8_3

11

110

1111

1000

011

Accessibility

This register is accessible in software as follows:

Control

Accessibility

<systemreg>

E2H

TGE

NS

EL0

EL1

EL2

EL3

S3_6_C15_8_3

x

x

0

-

-

n/a

RW

S3_6_C15_8_3

x

0

1

-

-

-

RW

S3_6_C15_8_3

x

1

1

-

n/a

-

RW

'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not

possible.

Traps and enables

For a description of the prioritization of any generated exceptions, see 

Synchronous exception

prioritization

 in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

274

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.33 CPUPOR_EL3, CPU Private Operation Register, EL3

The CPUPOR_EL3 provides 

IMPLEMENTATION DEFINED

 configuration and control options for the

core.

Bit field descriptions

CPUPOR_EL3 is a 64-bit register, and is part of the 

IMPLEMENTATION DEFINED

 registers functional

group.

Figure 3-109: CPUPOR_EL3 bit assignments

0

Reserved

63

Reserved, [63:0]

 

Reserved for Arm

®

 internal use.

Configurations

CPUPOR_EL3 is:
• Only accessible in Secure state.
• Mapped to the AArch32 CPUPOR register. See 

3.1.23 CPUPOR, CPU Private Operation

Register

 on page 122.

Usage constraints

Accessing the CPUPOR_EL3

The CPUPOR_EL3 can be written only when the system is idle. Arm recommends that you

write to this register after a powerup reset, before the MMU is enabled.

Writing to this register might cause 

UNPREDICTABLE

 behaviors. Therefore, Arm strongly

recommends that you do not modify this register unless directed by Arm.

This register is accessible as follows:

This register can be read with the MRS instruction using the following syntax:

MRS <Xt>,<systemreg>

This register can be written with the MSR instruction using the following syntax:

MSR <systemreg>, <Xt>

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

275

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

This syntax is encoded with the following settings in the instruction encoding:

<systemreg>

op0

op1

CRn

CRm

op2

S3_6_C15_8_2

11

110

1111

1000

010

Accessibility

This register is accessible in software as follows:

Control

Accessibility

<systemreg>

E2H

TGE

NS

EL0

EL1

EL2

EL3

S3_6_C15_8_2

x

x

0

-

-

n/a

RW

S3_6_C15_8_2

x

0

1

-

-

-

RW

S3_6_C15_8_2

x

1

1

-

n/a

-

RW

'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not

possible.

Traps and enables

For a description of the prioritization of any generated exceptions, see 

Synchronous exception

prioritization

 in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.34 CPUPSELR_EL3, CPU Private Selection Register, EL3

The CPUPSELR_EL3 provides 

IMPLEMENTATION DEFINED

 configuration and control options for the

core.

Bit field descriptions

CPUPSELR_EL3 is a 64-bit register, and is part of the 

IMPLEMENTATION DEFINED

 registers functional

group.

Figure 3-110: CPUPSELR_EL3 bit assignments

0

Reserved

63

Reserved, [63:0]

 

Reserved for Arm

®

 internal use.

Configurations

CPUPSELR_EL3 is:
• Only accessible in Secure state.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

276

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

• Mapped to the AArch32 CPUPSELR register. See 

3.1.24 CPUPSELR, CPU Private

Selection Register

 on page 124.

Usage constraints

Accessing the CPUPSELR_EL3

The CPUPSELR_EL3 can be written only when the system is idle. Arm recommends that you

write to this register after a powerup reset, before the MMU is enabled.

Writing to this register might cause 

UNPREDICTABLE

 behaviors. Therefore, Arm strongly

recommends that you do not modify this register unless directed by Arm.

This register is accessible as follows:

This register can be read with the MRS instruction using the following syntax:

MRS <Xt>,<systemreg>

This register can be written with the MSR instruction using the following syntax:

MSR <systemreg>, <Xt>

This syntax is encoded with the following settings in the instruction encoding:

<systemreg>

op0

op1

CRn

CRm

op2

S3_6_C15_8_0

11

110

1111

1000

000

Accessibility

This register is accessible in software as follows:

Control

Accessibility

<systemreg>

E2H

TGE

NS

EL0

EL1

EL2

EL3

S3_6_C15_8_0

x

x

0

-

-

n/a

RW

S3_6_C15_8_0

x

0

1

-

-

-

RW

S3_6_C15_8_0

x

1

1

-

n/a

-

RW

'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not

possible.

Traps and enables

For a description of the prioritization of any generated exceptions, see 

Synchronous exception

prioritization

 in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

277

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.35 CPUPWRCTLR_EL1, Power Control Register, EL1

The CPUPWRCTLR_EL1 provides information about power control support for the core.

Bit field descriptions

CPUPWRCTLR_EL1 is a 64-bit register, and is part of the 

IMPLEMENTATION DEFINED

 registers

functional group.

Figure 3-111: CPUPWRCTLR_EL1 bit assignments

31

7

13 12

6

10 9

0

CORE_PWRDN_EN

4

WFI_RET_CTRL

WFE_RET_CTRL

SIMD_RET_CTRL

3

1

RES0

Reserved

63

32

Reserved, [63:32]

Reserved.

RES0, [31:13]

RES0

Reserved.

SIMD_RET_CTRL, [12:10]

Advanced SIMD and floating-point retention control:

000

Disable the retention circuit. This is the default value, see 

Table 3-85:

CPUPWRCTLR Retention Control Field

 on page 279 for more

retention control options.

WFE_RET_CTRL, [9:7]

CPU WFE retention control:

000

Disable the retention circuit. This is the default value, see 

Table 3-85:

CPUPWRCTLR Retention Control Field

 on page 279 for more

retention control options.

WFI_RET_CTRL, [6:4]

CPU WFI retention control:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

278

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

000

Disable the retention circuit. This is the default value, see 

Table 3-85:

CPUPWRCTLR Retention Control Field

 on page 279 for more

retention control options.

RES0, [3:1]

RES0

Reserved.

CORE_PWRDN_EN, [0]

Indicates to the power controller using PACTIVE if the core wants to power down when it

enters WFI state.

0

No powerdown requested. This is the reset value.

1

A power down is requested.

Table 3-85: CPUPWRCTLR Retention Control Field

Encoding

Number of counter ticks 

4

Minimum retention entry delay

(System counter at 50MHz-10MHz)

000

Disable the retention circuit

Default Condition.

001

2

40ns-200ns

010

8

160ns-800ns

011

32

640ns – 3,200ns

100

64

1,280ns-6,400ns

101

128

2,560ns-12,800ns

110

256

5,120ns-25,600ns

111

512

10,240ns-51,200ns

Configurations

CPUPWRCTLR_EL1 bits [31:0] are architecturally mapped to AArch32 register

CPUPWRCTLR. See 

3.1.25 CPUPWRCTLR, CPU Power Control Register

 on page 125.

Usage constraints

Accessing the CPUPWRCTLR_EL1

This register can be read using MRS with the following syntax:

MRS <Xt>,<systemreg>

This register can be written using MSR with the following syntax:

MSR <systemreg>, <Xt>

4

The number of system counter ticks required before the core signals retention readiness on PACTIVE to the power

controller. The core does not accept a retention entry request until this time.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

279

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

This syntax is encoded with the following settings in the instruction encoding:

<systemreg>

op0

op1

CRn

CRm

op2

S3_0_C15_C2_7

11

000

1111

0010

111

Accessibility

This register is accessible in software as follows:

Control

Accessibility

<systemreg>

E2H

TGE

NS

EL0

EL1

EL2

EL3

S3_0_C15_C2_7

x

x

0

-

RW

n/a

RW

S3_0_C15_C2_7

x

0

1

-

RW

RW

RW

S3_0_C15_C2_7

x

1

1

-

n/a

RW

RW

'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not

possible.

Traps and enables

For a description of the prioritization of any generated exceptions, see 

Exception priority order

in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for exceptions that are

taken to AArch32 state, and see 

Synchronous exception prioritization

 for exceptions that are

taken to AArch64 state.

Write-Access to this register from EL1 or EL2 depends on the value of bit[7] of ACTLR_EL2

and ACTLR_EL3.

3.2.36 CSSELR_EL1, Cache Size Selection Register, EL1

CSSELR_EL1 selects the current Cache Size ID Register (CCSIDR_EL1), by specifying:

• The required cache level.
• The cache type, either instruction or data cache.

For details of the CCSIDR_EL1, see 

3.2.23 CCSIDR_EL1, Cache Size ID Register, EL1

 on page

257.

Bit field descriptions

CSSELR_EL1 is a 64-bit register, and is part of the Identification registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

280

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-112: CSSELR_EL1 bit assignments

 

InD

31

4 3

1 0

Level

RES0

Reserved

63

32

Reserved, [63:32]

 

Reserved.

RES0, [31:4]

RES0

Reserved.

Level, [3:1]

Cache level of required cache:

000

L1.

001

L2.

010

L3, if present.

The combination of Level=

001

 and InD=

1

 is reserved.

The combinations of Level and InD for 

0100

 to 

1111

 are reserved.

InD, [0]

Instruction not Data bit:

0

Data or unified cache.

1

Instruction cache.

The combination of Level=

001

 and InD=

1

 is reserved.

The combinations of Level and InD for 

0100

 to 

1111

 are reserved.

Configurations

CSSELR_EL1 bits [31:0] are architecturally mapped to AArch32 register CSSELR(NS). See

3.1.26 CSSELR, Cache Size Selection Register

 on page 128.

If a cache level is missing but CSSELR_EL1 selects this level, then a CCSIDR_EL1 read returns

an 

UNKNOWN

 value.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

281

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.37 CTR_EL0, Cache Type Register, EL0

The CTR_EL0 provides information about the architecture of the caches.

Bit field descriptions

CTR_EL0 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Figure 3-113: CTR_EL0 bit assignments

IminLine

31 30

28 27

24 23

20 19

16 15 14 13

4 3

0

CWG

ERG

DminLine L1Ip

res0

res1

29

IDC

DIC

Reserved

63

32

Reserved, [63:32]

Reserved.

RES1, [31]

RES1

Reserved.

RES0, [30:28]

RES0

Reserved.

DIC, [29]

Instruction cache invalidation requirements for instruction to data coherence:

0

Instruction cache invalidation to the point of unification is required

for instruction to data coherence.

1

Instruction cache cleaning to the point of unification is not required

for instruction to data coherence.

When configured with instruction cache hardware coherency, DIC is 

1

. When configured

without instruction cache hardware coherency, DIC is 

0

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

282

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

CWG, [27:24]

Cache write-back granule. Log

2

 of the number of words of the maximum size of memory

that can be overwritten as a result of the eviction of a cache entry that has had a memory

location in it modified:

0100

Cache write-back granule size is 16 words.

ERG, [23:20]

Exclusives Reservation Granule. Log

2

 of the number of words of the maximum size of the

reservation granule that has been implemented for the Load-Exclusive and Store-Exclusive

instructions:

0100

Exclusive reservation granule size is 16 words.

DminLine, [19:16]

Log

2

 of the number of words in the smallest cache line of all the data and unified caches that

the core controls:

0100

Smallest data cache line size is 16 words.

L1Ip, [15:14]

Instruction cache policy. Indicates the indexing and tagging policy for the L1 instruction

cache:

10

Virtually Indexed Physically Tagged

 (VIPT).

RES0, [13:4]

RES0

Reserved.

IminLine, [3:0]

Log

2

 of the number of words in the smallest cache line of all the instruction caches that the

core controls.

0100

Smallest instruction cache line size is 16 words.

Configurations

AArch64 System register CTR_EL0 bits [31:0] are architecturally mapped to AArch32 register

CTR. See 

3.1.27 CTR, Cache Type Register

 on page 129.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

283

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.38 DCZID_EL0, Data Cache Zero ID Register, EL0

The DCZID_EL0 indicates the block size that is written with byte values of zero by the 

DC ZVA

(Data Cache Zero by Address) System instruction.

Bit field descriptions

DCZID_EL0 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Figure 3-114: DCZID_EL0 bit assignments

63

5 4 3

BlockSize

RES0

0

DZP

RES0, [63:5]

RES0

Reserved.

BlockSize, [3:0]

Log

2

 of the block size in words:

0100

The block size is 16 words.

Configurations

There are no configuration notes.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.39 DISR_EL1, Deferred Interrupt Status Register, EL1

The DISR_EL1 records the SError interrupts consumed by an 

ESB

 instruction.

Bit field descriptions

DISR_EL1 is a 64-bit register, and is part of the registers 

Reliability, Availability, Serviceability

 (RAS)

functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

284

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-115: DISR_EL1 bit assignments, DISR_EL1.IDS is 0

63

6

0

10

12

13

RES0

9

DFSC

5

30

31

IDS

A

32

24 23

25

AET

RES0, [63:32]

RES0

Reserved.

A, [31]

Set to 1 when ESB defers an asynchronous SError interrupt. If the implementation does not

include any synchronizable sources of SError interrupt, this bit is 

RES0

.

RES0, [30:25]

RES0

Reserved.

IDS, [24]

Indicates the type of format the deferred SError interrupt uses. The value of this bit is:

0

Deferred error uses architecturally-defined format.

RES0, [23:13]

RES0

Reserved.

AET, [12:10]

Asynchronous Error Type. Describes the state of the core after taking an asynchronous Data

Abort exception. The value or values are:

0b001

Unrecoverable error (UEU).

All other values are reserved. Reserved values might be defined in a future version of the

architecture.

If multiple errors taken as a single SError interrupt exception, the overall state of the PE is

reported. For example, if both a Recoverable and Unrecoverable error occurred, the state is

Unrecoverable.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

285

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

• This field is only valid if IDS == 

0b0

 and DFSC == 

0b010001

.

• The recovery software must also examine any implemented fault records

to determine the location and extent of the error.

RES0, [9:6]

Reserved, 

RES0

.

DFSC, [5:0]

Data Fault Status Code. The possible values are:

010001

Asynchronous SError Interrupt when the core is executing in

AArch64 state or at EL2, or when the core is executing in AArch32

state at EL1, and the Extended Address Enable bit is at 1 in TTBCR.

000110

Asynchronous SError Interrupt when the core is executing in

AArch32 state at EL1 and the Extended Address Enable is at 0 in

TTBCR.

Configurations

AArch64 System register DISR_EL1 is architecturally mapped to AArch32 register DISR. See

3.1.29 DISR, Deferred Interrupt Status Register

 on page 133.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.40 ERRIDR_EL1, Error ID Register, EL1

The ERRIDR_EL1 defines the number of error record registers.

Bit field descriptions

ERRIDR_EL1 is a 64-bit register, and is part of the registers 

Reliability, Availability, Serviceability

 (RAS)

functional group.

This register is read-only.

Figure 3-116: ERRIDR_EL1 bit assignments

63

0

15

16

NUM

res0

RES0, [63:16]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

286

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

NUM, [15:0]

Number of records that can be accessed through the Error Record System registers.

0x0002

Two records present.

Configurations

ERRIDR_EL1 bits [31:0] are architecturally mapped to AArch32 register ERRIDR. See 

3.1.30

ERRIDR, Error ID Register

 on page 137.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.41 ERRSELR_EL1, Error Record Select Register, EL1

The ERRSELR_EL1 selects which error record should be accessed through the Error Record System

registers. This register is not reset on a Warm reset.

Bit field descriptions

ERRSELR_EL1 is a 64-bit register, and is part of the 

Reliability, Availability, Serviceability

 (RAS)

registers functional group.

Figure 3-117: ERRSELR_EL1 bit assignments

63

0

1

SEL

RES

0

RES0, [63:1]

RES0

 

Reserved.

SEL, [0]

Selects which error record should be accessed.

0

Select error record 0 containing errors from level 1 and level 2 RAMs

that are located on the Cortex

®

-A55 core.

1

Select error record 1 containing errors from level 3 RAMs that are

located on the 

DynamIQ Shared Unit

 (DSU).

Configurations

ERRSELR_EL1 is architecturally mapped to AArch32 register ERRSELR. See 

3.1.31 ERRSELR,

Error Record Select Register

 on page 138.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

287

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.42 ERXADDR_EL1, Selected Error Record Address Register, EL1

Register ERXADDR_EL1 accesses the ERR<n>ADDR address register for the error record that is

selected by ERRSELR_EL1.SEL.

If ERRSELR_EL1.SEL==0, then ERXADDR_EL1 accesses the ERR0ADDR register of the core error

record. See 

3.3.2 ERR0ADDR, Error Record Address Register

 on page 386.

If ERRSELR_EL1.SEL==1, then ERXADDR_EL1 accesses the ERR1ADDR register of the 

DynamIQ

Shared Unit

 (DSU) error record. See the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

3.2.43 ERXCTLR_EL1, Selected Error Record Control Register, EL1

Register ERXCTLR_EL1 accesses the ERR<n>CTLR control register for the error record that is

selected by ERRSELR_EL1.SEL.

If ERRSELR_EL1.SEL==0, then ERXCTLR_EL1 accesses the ERR0CTLR register of the core error

record. See 

3.3.3 ERR0CTLR, Error Record Control Register

 on page 386.

If ERRSELR_EL1.SEL==1, then ERXCLTR_EL1 accesses the ERR1CTLR register of the DSU error

record. See the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

3.2.44 ERXFR_EL1, Selected Error Record Feature Register, EL1

Register ERXFR_EL1 accesses the ERR<n>FR feature register for the error record that is selected

by ERRSELR_EL1.SEL.

If ERRSELR_EL1.SEL==0, then ERXFR_EL1 accesses the ERR0FR register of the core error record.

See 

3.3.4 ERR0FR, Error Record Feature Register

 on page 388.

If ERRSELR_EL1.SEL==1, then ERXFR_EL1 accesses the ERR1FR register of the 

DynamIQ Shared

Unit

 (DSU) error record. See the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

3.2.45 ERXMISC0_EL1, Selected Error Record Miscellaneous Register 0,

EL1

Register ERXMISC0_EL1 accesses the ERR<n>MISC0 register for the error record that is selected

by ERRSELR_EL1.SEL.

If ERRSELR_EL1.SEL==0, then ERXMISC0_EL1 accesses the ERR0MISC0 register of the core error

record. See 

3.3.5 ERR0MISC0, Error Record Miscellaneous Register 0

 on page 390.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

288

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

If ERRSELR_EL1.SEL==1, then ERXMISC0_EL1 accesses the ERR1MISC0 register of the 

DynamIQ

Shared Unit

 (DSU) error record. See the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

3.2.46 ERXMISC1_EL1, Selected Error Record Miscellaneous Register 1,

EL1

Register ERXMISC1_EL1 accesses the ERR<n>MISC1 miscellaneous register 1 for the error record

that is selected by ERRSELR_EL1.SEL.

If ERRSELR_EL1.SEL==0, then ERXMISC1_EL1 accesses the ERR0MISC1 register of the core error

record. See 

3.3.6 ERR0MISC1, Error Record Miscellaneous Register 1

 on page 392.

If ERRSELR_EL1.SEL==1, then ERXMISC1_EL1 accesses the ERR1MISC1 register of the 

DynamIQ

Shared Unit

 (DSU) error record. See the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

3.2.47 ERXPFGCDN_EL1, Selected Error Pseudo Fault Generation Count

Down Register, EL1

Register ERXPFGCDN_EL1 accesses the ERR<n>PFGCND register for the error record that is

selected by ERRSELR_EL1.SEL.

If ERRSELR_EL1.SEL==0, then ERXPFGCDN_EL1 accesses the ERR0PFGCDN register of the core

error record. See 

3.3.7 ERR0PFGCDN, Error Pseudo Fault Generation Count Down Register

 on

page 392.

If ERRSELR_EL1.SEL==1, then ERXPFGCDN_EL1 accesses the ERR1PFGCDNR register of the

DynamIQ Shared Unit

 (DSU) error record. See the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference

Manual

.

Configurations

ERXPFGCDN_EL1 is architecturally mapped to AArch32 register ERXPFGCDN. See 

3.1.42

ERXPFGCDN, Selected Error Pseudo Fault Generation Count Down Register

 on page 141.

Accessing the ERXPFGCDN_EL1

This register can be read using MRS with the following syntax:

MRS <Xt>,<systemreg>

This register can be written using MSR with the following syntax:

MSR <Xt>,<systemreg>

This syntax is encoded with the following settings in the instruction encoding:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

289

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

<systemreg>

op0

op1

CRn

CRm

op2

S3_0_C15_C2_2

11

000

1111

0010

010

Accessibility

This register is accessible in software as follows:

Control

Accessibility

<syntax>

E2H

TGE

NS

EL0

EL1

EL2

EL3

S3_0_C15_C2_2

x

x

0

-

RW

n/a

RW

S3_0_C15_C2_2

x

0

1

-

RW

RW

RW

S3_0_C15_C2_2

x

1

1

-

n/a

RW

RW

'n/a' Not accessible. Executing the PE at this Exception level is not permitted.

Traps and enables

For a description of the prioritization of any generated exceptions, see 

Exception priority order

in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for exceptions taken to

AArch32 state, and see 

Synchronous exception prioritization

 for exceptions taken to AArch64

state. Subject to these prioritization rules, the following traps and enables are applicable

when accessing this register.
ERXPFGCDN_EL1 is accessible at EL3 and can be accessible at EL1 and EL2 depending on

the value of bit[5] in ACTLR_EL2 and ACTLR_EL3. See 

3.2.6 ACTLR_EL2, Auxiliary Control

Register, EL2

 on page 235 and 

3.2.7 ACTLR_EL3, Auxiliary Control Register, EL3

 on page

238.
ERXPFGCDN_EL1 is 

UNDEFINED

 at EL0.

If ERXPFGCDN_EL1 is accessible at EL1 and HCR_EL2.TERR == 1, then direct reads and

writes of ERXPFGCDN_EL1 at Non-secure EL1 generate a Trap exception to EL2.

If ERXPFGCDN_EL1 is accessible at EL1 or EL2 and SCR_EL3.TERR == 1, then direct reads

and writes of ERXPFGCDN_EL1 at EL1 or EL2 generate a Trap exception to EL3.

3.2.48 ERXPFGCTL_EL1, Selected Error Pseudo Fault Generation Control

Register, EL1

Register ERXPFGCTL_EL1 accesses the ERR<n>PFGCTL register for the error record that is

selected by ERRSELR_EL1.SEL.

If ERRSELR_EL1.SEL==0, then ERXPFGCTL_EL1 accesses the ERR0PFGCTL register of the core

error record. See 

3.3.8 ERR0PFGCTL, Error Pseudo Fault Generation Control Register

 on page

393.

If ERRSELR_EL1.SEL==1, then ERXPFGCTL_EL1 accesses the ERR1PFGCTL register of the

DynamIQ Shared Unit

 (DSU) error record. See the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference

Manual

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

290

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Configurations

ERXPFGCTL_EL1 is architecturally mapped to AArch32 register ERXPFGCTL. See 

3.1.43

ERXPFGCTL, Selected Error Pseudo Fault Generation Control Register

 on page 142.

Accessing the ERXPFGCTL_EL1

This register can be read using MRS with the following syntax:

MRS <Xt>,<systemreg>

This register can be written using MSR with the following syntax:

MSR <Xt>,<systemreg>

This syntax is encoded with the following settings in the instruction encoding:

<systemreg>

op0

op1

CRn

CRm

op2

S3_0_C15_C2_1

11

000

1111

0010

001

Accessibility

This register is accessible in software as follows:

Control

Accessibility

<syntax>

E2H

TGE

NS

EL0

EL1

EL2

EL3

S3_0_C15_C2_1

x

x

0

-

RW

n/a

RW

S3_0_C15_C2_1

x

0

1

-

RW

RW

RW

S3_0_C15_C2_1

x

1

1

-

n/a

RW

RW

'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not

possible.

Traps and enables

For a description of the prioritization of any generated exceptions, see 

Exception priority order

in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for exceptions taken to

AArch32 state, and see 

Synchronous exception prioritization

 for exceptions taken to AArch64

state. Subject to these prioritization rules, the following traps and enables are applicable

when accessing this register.
ERXPFGCTL_EL1 is accessible at EL3 and can be accessible at EL1 and EL2 depending on

the value of bit[5] in ACTLR_EL2 and ACTLR_EL3. See 

3.2.6 ACTLR_EL2, Auxiliary Control

Register, EL2

 on page 235 and 

3.2.7 ACTLR_EL3, Auxiliary Control Register, EL3

 on page

238.
ERXPFGCTL_EL1 is 

UNDEFINED

 at EL0.

If ERXPFGCTL_EL1 is accessible at EL1 and HCR_EL2.TERR == 1, then direct reads and

writes of ERXPFGCTL_EL1 at Non-secure EL1 generate a Trap exception to EL2.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

291

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

If ERXPFGCTL_EL1 is accessible at EL1 or EL2 and SCR_EL3.TERR == 1, then direct reads

and writes of ERXPFGCTL_EL1 at EL1 or EL2 generate a Trap exception to EL3.

3.2.49 ERXPFGF_EL1, Selected Pseudo Fault Generation Feature Register,

EL1

Register ERXPFGF_EL1 accesses the ERR<n>PFGF register for the error record that is selected by

ERRSELR_EL1.SEL.

If ERRSELR_EL1.SEL==0, then ERXPFGF_EL1 accesses the ERR0PFGF register of the core error

record. See 

3.3.9 ERR0PFGF, Error Pseudo Fault Generation Feature Register

 on page 395.

If ERRSELR_EL1.SEL==1, then ERXPFGF_EL1 accesses the ERR1PFGFR register of the 

DynamIQ

Shared Unit

 (DSU) error record. See the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

Configurations

ERXPFGF_EL1 is architecturally mapped to AArch32 register ERXPFGF. See 

3.1.44

ERXPFGF, Selected Pseudo Fault Generation Feature Register

 on page 143.

Accessing the ERXPFGF_EL1

This register can be read using MRS with the following syntax:

MRS <Xt>,<systemreg>

This syntax is encoded with the following settings in the instruction encoding:

<systemreg>

op0

op1

CRn

CRm

op2

S3_0_C15_C2_0

11

000

1111

0010

000

Accessibility

This register is accessible in software as follows:

Control

Accessibility

<syntax>

E2H

TGE

NS

EL0

EL1

EL2

EL3

S3_0_C15_C2_0

x

x

0

-

RO

n/a

RO

S3_0_C15_C2_0

x

0

1

-

RO

RO

RO

S3_0_C15_C2_0

x

1

1

-

n/a

RO

RO

'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not

possible.

Traps and enables

For a description of the prioritization of any generated exceptions, see 

Exception priority order

in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for exceptions taken to

AArch32 state, and see 

Synchronous exception prioritization

 for exceptions taken to AArch64

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

292

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

state. Subject to these prioritization rules, the following traps and enables are applicable

when accessing this register.
ERXPFGR_EL1 is accessible at EL3 and can be accessible at EL1 and EL2 depending on

the value of bit[5] in ACTLR_EL2 and ACTLR_EL3. See 

3.2.6 ACTLR_EL2, Auxiliary Control

Register, EL2

 on page 235 and 

3.2.7 ACTLR_EL3, Auxiliary Control Register, EL3

 on page

238.
ERXPFGR_EL1 is 

UNDEFINED

 at EL0.

If ERXPFGR_EL1 is accessible at EL1 and HCR_EL2.TERR == 1, then direct reads and writes

of ERXPFGR_EL1 at Non-secure EL1 generate a Trap exception to EL2.

If ERXPFGR_EL1 is accessible at EL1 or EL2 and SCR_EL3.TERR == 1, then direct reads and

writes of ERXPFGR_EL1 at EL1 or EL2 generate a Trap exception to EL3.

3.2.50 ERXSTATUS_EL1, Selected Error Record Primary Status Register,

EL1

Register ERXSTATUS_EL1 accesses the ERR<n>STATUS primary status register for the error record

that is selected by ERRSELR_EL1.SEL.

If ERRSELR_EL1.SEL==0, then ERXSTATUS_EL1 accesses the ERR0STATUS register of the core

error record. See 

3.3.10 ERR0STATUS, Error Record Primary Status Register

 on page 397.

If ERRSELR_EL1.SEL==1, then ERXSTATUS_EL1 accesses the ERR1STATUS register of the

DynamIQ Shared Unit

 (DSU) error record. See the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference

Manual

.

3.2.51 ESR_EL1, Exception Syndrome Register, EL1

The ESR_EL1 holds syndrome information for an exception taken to EL1.

Bit field descriptions

ESR_EL1 is a 64-bit register, and is part of the Exception and fault handling registers functional

group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

293

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-118: ESR_EL1 bit assignments

31

0

ISS

IL

EC

25 24

26

Reserved

63

32

Reserved, [63:32]

Reserved.

EC, [31:26]

Exception Class. Indicates the reason for the exception that this register holds information

about.

IL, [25]

Instruction Length for synchronous exceptions. The possible values are:

0

16-bit.

1

32-bit.

This field is 

1

 for the SError interrupt, instruction aborts, misaligned PC, Stack pointer

misalignment, Data Aborts for which the ISV bit is 

0

, exceptions caused by an illegal

instruction set state, and exceptions using the 

0x00

 Exception Class.

ISS, [24:0]

Syndrome information. See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

for more information.

When the EC field is 

0x2F

, indicating an SError interrupt has occurred, the IDS[24] bit in the

ISS field is set to 0. IDS==0 indicates that the rest of the ISS field contents are as defined by

the architecture.

Configurations

ESR_EL1 bits [31:0] are architecturally mapped to AArch32 register DFSR (NS). See 

3.1.28

DFSR, Data Fault Status Register

 on page 131.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

294

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.52 ESR_EL2, Exception Syndrome Register, EL2

The ESR_EL2 holds syndrome information for an exception taken to EL2.

Bit field descriptions

ESR_EL2 is a 64-bit register, and is part of:
• The Virtualization registers functional group.
• The Exception and fault handling registers functional group.

Figure 3-119: ESR_EL2 bit assignments

31

0

ISS

IL

EC

25 24

26

Reserved

63

32

Reserved, [63:32]

Reserved.

EC, [31:26]

Exception Class. Indicates the reason for the exception that this register holds information

about. See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for more

information.

IL, [25]

Instruction Length for synchronous exceptions. The possible values are:

0

16-bit.

1

32-bit.

See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for more information.

ISS, [24:0]

Syndrome information. See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

for more information.

When reporting a virtual SEI, bits[24:0] take the value of VSESRL_EL2[24:0].

When reporting a physical SEI, the following occurs:
• IDS==0 (architectural syndrome).

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

295

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

• AET always reports an uncontainable error (UC) with value 

0b000

 or an unrecoverable

error (UEU) with value 

0b001

.

• EA is 

RES0

.

When reporting a synchronous Data Abort, EA is 

RES0

.

See 

3.2.108 VSESR_EL2, Virtual SError Exception Syndrome Register

 on page 380.

Configurations

ESR_EL2 bits [31:0] are architecturally mapped to AArch32 register HSR. See 

3.1.57 HSR,

Hyp Syndrome Register

 on page 156.

If EL2 is not implemented, this register is 

RES0

 from EL3.

RW fields in this register reset to architecturally 

UNKNOWN

 values.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.53 ESR_EL3, Exception Syndrome Register, EL3

The ESR_EL3 holds syndrome information for an exception taken to EL3.

Bit field descriptions

ESR_EL3 is a 64-bit register, and is part of the Exception and fault handling registers functional

group.

Figure 3-120: ESR_EL3 bit assignments

31

0

ISS

IL

EC

25 24

26

Reserved

63

32

Reserved, [63:32]

 

Reserved.

EC, [31:26]

Exception Class. Indicates the reason for the exception that this register holds information

about.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

296

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

IL, [25]

Instruction Length for synchronous exceptions. The possible values are:

0

16-bit.

1

32-bit.

This field is 1 for the SError interrupt, instruction aborts, misaligned PC, Stack pointer

misalignment, data aborts for which the ISV bit is 0, exceptions caused by an illegal

instruction set state, and exceptions using the 

0x0

 Exception Class.

ISS, [24:0]

Syndrome information. See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

for more information.

When the EC field is 

0x2F

, indicating an SError interrupt has occurred, the IDS[24] bit in the

ISS field is set to 0. IDS==0 indicates that the rest of the ISS field contents are as defined by

the architecture.

Configurations

ESR_EL3 bits [31:0] are mapped to AArch32 register DFSR(S). See 

3.1.28 DFSR, Data Fault

Status Register

 on page 131.

RW fields in this register reset to architecturally 

UNKNOWN

 values.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.2.54 HACR_EL2, Hyp Auxiliary Configuration Register, EL2

HACR_EL2 controls trapping to EL2 of 

IMPLEMENTATION DEFINED

 aspects of Non-secure EL1 or EL0

operation. This register is not used in the Cortex

®

-A55 core.

Bit field descriptions

HACR_EL2 is a 64-bit register, and is part of Virtualization registers functional group.

Figure 3-121: HACR_EL2 bit assignments

31

RES0

0

Reserved

63

32

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

297

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Reserved, [63:32]

Reserved.

RES0, [31:0]

 

Reserved, 

RES0

.

Configurations

HACR_EL2 bits [31:0] are architecturally mapped to AArch32 System register HACR. See

3.1.47 HACR, Hyp Auxiliary Configuration Register

 on page 145.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.55 HCR_EL2, Hypervisor Configuration Register, EL2

The HCR_EL2 provides configuration control for virtualization, including whether various Non-

secure operations are trapped to EL2.

Bit field descriptions

HCR_EL2 is a 64-bit register, and is part of the Virtualization registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

298

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-122: HCR_EL2 bit assignments

31

0

1

2

11

12

TRVM

RW

PTW
FMO

IMO
AMO
VF
VI

VSE
FB
BSU
DC

TWI
TWE
TID0

HCD

TDZ

TGE

TVM

TTLB

TPU

TSW

TACR

TIDCP

TSC

TID3

TID2

TID1

TPC

SWIO

VM

30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13

10 9 8 7 6 5 4 3

32

33

34

CD

ID

63

35

36

37

38

39

MIOCNCE

TLOR

E2H

RES

0

RES

1

RES0, [63:39]

RES0

Reserved.

MIOCNCE, [38]

Mismatched Inner/Outer Cacheable Non-Coherency Enable, for the Non-secure EL1 and

EL0 translation regime.

This bit is not implemented, RAZ/WI.

RW, [31]

Execution state control for lower Exception levels. The possible values are:

0

Lower levels are all AArch32.

1

The Execution state for EL1 is AArch64. The Execution state for EL0

is determined by the current value of PSTATE.nRW when executing

at EL0.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

299

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

HCD, [29]

HVC instruction disable.

 

This bit is reserved, 

RES0

.

TGE, [27]

Traps general exceptions. If this bit is set, and SCR_EL3.NS is set, then:
• All exceptions that would be routed to EL1 are routed to EL2.
• The SCTLR_EL1.M bit is treated as 

0

 regardless of its actual state, other than for reading

the bit.

• The HCR_EL2.FMO, IMO, and AMO bits are treated as 

1

 regardless of their actual state,

other than for reading the bits.

• All virtual interrupts are disabled.
• Any 

IMPLEMENTATION DEFINED

 mechanisms for signaling virtual interrupts are disabled.

• An exception return to EL1 is treated as an illegal exception return.

HCR_EL2.TGE must not be cached in a TLB.

When the value of SCR_EL3.NS is 0, the core behaves as if this field is 0 for all purposes

other than a direct read or Write-Access of HCR_EL2.

TID3, [18]

Traps ID group 3 registers. The possible values are:

0

ID group 3 register accesses are not trapped.

1

Reads to ID group 3 registers that are executed from Non-secure EL1

are trapped to EL2.

See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for the registers covered

by this setting.

TID0, [15]

Trap ID Group 0. When 

1

, this causes reads to the following registers executed from EL1 or

EL0 if not 

UNDEFINED

 to be trapped to EL2:

FPSID and JIDR.

When the value of SCR_EL3.NS is 

0

, the PE behaves as if this field is 

0

 for all purposes other

than a direct read or Write-Access of HCR_EL2.

SWIO, [1]

Set/Way Invalidation Override. Non-secure EL1 execution of the data cache invalidate by

set/way instruction is treated as data cache clean and invalidate by set/way.

This bit is 

RES1

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

300

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Configurations

HCR_EL2[31:0] is architecturally mapped to AArch32 register HCR. See 

3.1.54 HCR, Hyp

Configuration Register

 on page 152.

HCR_EL2[63:32] is architecturally mapped to AArch32 register HCR2. See 

3.1.55 HCR2,

Hyp Configuration Register 2

 on page 154.

If EL2 is not implemented, this register is 

RES0

 from EL3

RW fields in this register reset to architecturally 

UNKNOWN

 values.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.56 HPFAR_EL2, Hypervisor IPA Fault Address Register, EL2

The HPFAR_EL2 holds the faulting IPA for some aborts on a stage 2 translation taken to EL2.

Bit field descriptions

HPFAR_EL2 is a 64-bit register, and is part of:
• The Exception and fault handling registers functional group.
• The Virtualization registers functional group.

Figure 3-123: HPFAR_EL2 bit assignments

39

40

0

63

3

4

RES

0

FIPA[47:12]

RES0, [63:40]

RES0

Reserved.

FIPA[47:12], [39:4]

Bits [47:12] of the faulting intermediate physical address. The equivalent upper bits in this

field are 

RES0

.

RES0, [3:0]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

301

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Configurations

AArch64 register HPFAR_EL2[31:0] is architecturally mapped to AArch32 register HPFAR.

See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

If EL2 is not implemented, this register is 

RES0

 from EL3.

RW fields in this register reset to architecturally 

UNKNOWN

 values.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.2.57 ID_AA64DFR0_EL1, AArch64 Debug Feature Register 0, EL1

Provides top-level information about the debug system in AArch64.

Bit field descriptions

ID_AA64DFR0_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Figure 3-124: ID_AA64DFR0_EL1 bit assignments

4 3

8 7

12 11

16 15

20 19

24 23

28 27

0

63

Debugver

Tracever

PMUver

BRPs

WRPs

CTX_CMPs

32 31

res0

RES0, [63:32]

RES0

Reserved.

CTX_CMPs, [31:28]

Number of breakpoints that are context-aware, minus 1. These are the highest numbered

breakpoints:

0x1

Two breakpoints are context-aware.

RES0, [27:24]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

302

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

WRPs, [23:20]

The number of watchpoints minus 1:

0x3

Four watchpoints.

RES0, [19:16]

RES0

Reserved.

BRPs, [15:12]

The number of breakpoints minus 1:

0x5

Six breakpoints.

PMUVer, [11:8]

Performance Monitors Extension version.

0x4

Performance monitor System registers implemented, PMUv3.

TraceVer, [7:4]

Trace extension:

0x0

Trace System registers not implemented.

DebugVer, [3:0]

Debug architecture version:

0x8

Arm

®

v8‑A debug architecture implemented.

Configurations

ID_AA64DFR0_EL1 is architecturally mapped to external register EDDFR.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.58 ID_AA64ISAR0_EL1, AArch64 Instruction Set Attribute Register 0,

EL1

The ID_AA64ISAR0_EL1 provides information about the instructions that are implemented in

AArch64 state, including the instructions that are provided by the Cryptographic Extension.

Bit field descriptions

ID_AA64ISAR0_EL1 is a 64-bit register, and is part of the Identification registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

303

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

This register is read-only.

The optional Cryptographic Extension is not included in the base product of the core. Arm requires

licensees to have contractual rights to obtain the Cryptographic Extension.

Figure 3-125: ID_AA64ISAR0_EL1 bit assignments

63

0

AES

SHA1

SHA2

16 15

12 11

8 7

4 3

CRC32

20 19

23

Atomic

27

24

28

31

RDM

32

RES

0

43

44

47

48

DP

RES0, [63:48]

RES0

Reserved.

DP, [47:44]

Indicates whether Dot Product support instructions are implemented.

0x1

UDOT

SDOT

 instructions are implemented.

RES0, [43:32]

RES0

Reserved.

RDM, [31:28]

Indicates whether 

SQRDMLAH

 and 

SQRDMLSH

 instructions in AArch64 are implemented.

0x1

SQRDMLAH

 and

 SQRDMLSH

 instructions are implemented.

RES0, [27:24]

RES0

Reserved.

Atomic, [23:20]

Indicates whether Atomic instructions in AArch64 are implemented. The value is:

0x2

LDADD

LDCLR

LDEOR

LDSET

LDSMAX

LDSMIN

LDUMAX

LDUMIN

CAS

CASP

,

and 

SWP

 instructions are implemented.

CRC32, [19:16]

Indicates whether CRC32 instructions are implemented. The value is:

0x1

CRC32 instructions are implemented.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

304

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

SHA2, [15:12]

Indicates whether SHA2 instructions are implemented. The possible values are:

0x0

No SHA2 instructions are implemented. This is the value if the core

implementation does not include the Cryptographic Extension.

0x1

SHA256H

SHA256H2

SHA256U0

, and 

SHA256U1

 implemented. This is

the value if the core implementation includes the Cryptographic

Extension.

SHA1, [11:8]

Indicates whether SHA1 instructions are implemented. The possible values are:

0x0

No SHA1 instructions implemented. This is the value if the core

implementation does not include the Cryptographic Extension.

0x1

SHA1C

SHA1P

SHA1M

SHA1SU0

, and 

SHA1SU1

 implemented. This is

the value if the core implementation includes the Cryptographic

Extension.

AES, [7:4]

Indicates whether AES instructions are implemented. The possible values are:

0x0

No AES instructions implemented. This is the value if the core

implementation does not include the Cryptographic Extension.

0x2

AESE

AESD

AESMC

, and 

AESIMC

 implemented, plus 

PMULL

 and 

PMULL2

instructions operating on 64-bit data. This is the value if the core

implementation includes the Cryptographic Extension.

RES0, [3:0]

RES0

Reserved.

Configurations

ID_AA64ISAR0_EL1 is architecturally mapped to external register ID_AA64ISAR0.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.59 ID_AA64ISAR1_EL1, AArch64 Instruction Set Attribute Register 1,

EL1

The ID_AA64ISAR1_EL1 provides information about the instructions that are implemented in

AArch64 state.

Bit field descriptions

ID_AA64ISAR1_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

305

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-126: ID_AA64ISAR1_EL1 bit assignments

63

0

DC CVAP

4

3

20 19

LRCPC

23

24

res0

RES0, [63:24]

RES0

Reserved.

LRCPC, [23:20]

Indicates whether load-acquire (

LDA

) instructions are implemented for a Release Consistent

core consistent RCPC model.

0x1

The 

LDAPRB

LDAPRH

, and 

LDAPR

 instructions are implemented in

AArch64.

RES0, [19:4]

RES0

Reserved.

DC CVAP, [3:0]

Indicates whether data cache, Clean to the Point of Persistence (

DC CVAP

) instructions are

implemented.

0x1

DC CVAP

 is supported in AArch64.

Configurations

There are no configuration notes.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.60 ID_AA64MMFR0_EL1, AArch64 Memory Model Feature Register 0,

EL1

The ID_AA64MMFR0_EL1 provides information about the implemented memory model and

memory management support in the AArch64 Execution state.

Bit field descriptions

ID_AA64MMFR0_EL1 is a 64-bit register, and is part of the Identification registers functional

group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

306

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

This register is read-only.

Figure 3-127: ID_AA64MMFR0_EL1 bit assignments

63

0

4 3

8 7

12 11

16 15

BigEnd

ASIDBits

20 19

SNSMem

TGran16

PARange

24 23

BigEndEL0

RES

0

RES0, [63:24]

RES0

Reserved.

TGran16, [23:20]

Support for 16KB memory translation granule size:

0x1

Indicates that the 16KB granule is supported.

BigEndEL0, [19:16]

Mixed-endian support only at EL0.

0x0

No mixed-endian support at EL0. The SCTLR_EL1.E0E bit has a fixed value.

SNSMem, [15:12]

Secure versus Non-secure Memory distinction:

0x1

Supports a distinction between Secure and Non-secure Memory.

BigEnd, [11:8]

Mixed-endian configuration support:

0x1

Mixed-endian support. The SCTLR_ELx.EE and SCTLR_EL1.E0E bits can be configured.

ASIDBits, [7:4]

Number of ASID bits:

0x2

16 bits.

PARange, [3:0]

Physical address range supported:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

307

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0x2

40 bits, 1TB.

The supported Physical Address Range is 40-bits. Other cores in the 

DynamIQ Shared

Unit

 (DSU) may support a different Physical Address Range.

Configurations

There are no configuration notes.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.61 ID_AA64MMFR1_EL1, AArch64 Memory Model Feature Register 1,

EL1

The ID_AA64MMFR1_EL1 provides information about the implemented memory model and

memory management support in the AArch64 Execution state.

Bit field descriptions

ID_AA64MMFR1_EL1 is a 64-bit register, and is part of the Identification registers functional

group.

This register is read-only.

Figure 3-128: ID_AA64MMFR1_EL1 bit assignments

63

0

4 3

8 7

12 11

16 15

VH

VMIDBits

20 19

HPDS

PAN

HAFDBS

24 23

28 27

XNX

32 31

LO

RES

0

RES0, [63:32]

RES0

Reserved.

XNX, [31:28]

Indicates whether provision of EL0 vs EL1 execute-never control at stage 2 is supported.

0x1

EL0/EL1 execute control distinction at stage 2 bit is supported. All other values are

reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

308

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

RES0, [27:24]

RES0

Reserved.

PAN, [23:20]

Privileged Access Never. Indicates support for the PAN bit in PSTATE, SPSR_EL1, SPSR_EL2,

SPSR_EL3, and DSPSR_EL0.

0x2

PAN supported and AT S1E1RP and AT S1E1WP instructions supported.

LO, [19:16]

Indicates support for LORegions.

0x1

LORegions are supported.

HPDS, [15:12]

Presence of Hierarchical Disables. Enables an operating system or hypervisor to hand over

up to 4 bits of the last level translation table descriptor (bits[62:59] of the translation table

entry) for use by hardware for 

IMPLEMENTATION DEFINED

 usage. The value is:

0x2

Hierarchical Permission Disables and Hardware allocation of bits[62:59] supported.

VH, [11:8]

Indicates whether Virtualization Host Extensions are supported.

0x1

Virtualization Host Extensions supported.

VMIDBits, [7:4]

Indicates the number of VMID bits supported.

0x2

16 bits are supported.

HAFDBS, [3:0]

Indicates the support for hardware updates to Access flag and dirty state in translation tables.

0x2

Hardware update of both the Access flag and dirty state is supported in hardware.

Configurations

There are no configuration notes.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

309

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.62 ID_AA64MMFR2_EL1, AArch64 Memory Model Feature Register 2,

EL1

The ID_AA64MMFR2_EL1 provides information about the implemented memory model and

memory management support in the AArch64 Execution state.

Bit field descriptions

ID_AA64MMFR2_EL1 is a 64-bit register, and is part of the Identification registers functional

group.

This register is read-only.

Figure 3-129: ID_AA64MMFR2_EL1 bit assignments

63

0

4 3

8 7

12 11

16 15

LSM

UAO

IESB

CnP

RES

0

19

VARange

20

RES0, [63:20]

RES0

Reserved.

VARange, [19:16]

Indicates support for a larger virtual address. The value is:

0x0

VMSAv8-64 supports 48-bit virtual addresses.

IESB, [15:12]

Indicates whether an implicit Error Synchronization Barrier has been inserted. The value is:

0x1

SCTLR_ELx.IESB implicit 

ErrorSynchronizationBarrier

 control implemented.

LSM, [11:8]

Indicates whether LDM and STM ordering control bits are supported. The value is:

0x0

LSMAOE and nTLSMD bit not supported.

UAO, [7:4]

Indicates the presence of the 

User Access Override

 (UAO). The value is:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

310

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0x1

UAO is supported.

CnP, [3:0]

Common not Private. Indicates whether a TLB entry is pointed at a translation table base

register that is a member of a common set. The value is:

0x1

CnP bit is supported.

Configurations

There are no configuration notes.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.63 ID_AA64PFR0_EL1, AArch64 Processor Feature Register 0, EL1

The ID_AA64PFR0_EL1 provides additional information about implemented core features in

AArch64.

The optional Advanced SIMD and floating-point support is not included in the base product of the

core. Arm requires licensees to have contractual rights to obtain the Advanced SIMD and floating-

point support.

Bit field descriptions

ID_AA64PFR0_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Figure 3-130: ID_AA64PFR0_EL1 bit assignments

31

0

4 3

8 7

12 11

16 15

EL3 

handling

EL2 

handling

EL1 

handling

EL0 

handling

AdvSIMD

FP

20 19

24 23

GIC

28 27

32

63

RAS

RES

0

60 59

56 55

CSV3

CSV2

CSV3, [63:60]

0x0

Data that are loaded under speculation with a permission or domain fault cannot be

used to form an address or generate condition codes to be used by instructions newer

than the load in the speculative sequence. This is the reset value.

All other values reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

311

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

CSV2, [59:56]

0x0

Branch targets trained in one context cannot affect speculative execution in a different

hardware described context. This is the reset value.

All other values reserved.

RES0, [55:32]

RES0

Reserved.

RAS, [31:28]

RAS extension version. The possible values are:

0x1

Version 1 of the RAS extension is present.

GIC, [27:24]

GIC CPU interface:

0x0

GIC CPU interface is disabled, GICCDISABLE is HIGH, or not implemented.

0x1

GIC CPU interface is implemented and enabled, GICCDISABLE is LOW. GICv4.1 is

supported.

AdvSIMD, [23:20]

Advanced SIMD. The possible values are:

0x1

Advanced SIMD, including half-precision support, is implemented.

0xF

Advanced SIMD is not implemented.

The FP and AdvSIMD both take the same value, as both must be implemented, or neither.

FP, [19:16]

Floating-point. The possible values are:

0x1

Floating-point, including half-precision support, is implemented.

0xF

Floating-point is not implemented.

The FP and AdvSIMD both take the same value, as both must be implemented, or neither.

EL3 handling, [15:12]

EL3 exception handling:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

312

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0x2

Instructions can be executed at EL3 in AArch64 or AArch32 state.

EL2 handling, [11:8]

EL2 exception handling:

0x2

Instructions can be executed at EL3 in AArch64 or AArch32 state.

EL1 handling, [7:4]

EL1 exception handling. The possible values are:

0x2

Instructions can be executed at EL3 in AArch64 or AArch32 state.

EL0 handling, [3:0]

EL0 exception handling. The possible values are:

0x2

Instructions can be executed at EL0 in AArch64 or AArch32 state.

Configurations

ID_AA64PFR0_EL1 is architecturally mapped to External register EDPFR.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.64 ID_AA64PFR1_EL1, AArch64 Processor Feature Register 1, EL1

The ID_AA64PFR1_EL1 provides additional information about implemented core features in

AArch64.

Bit field descriptions

ID_AA64PFR1_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Figure 3-131: ID_AA64PFR1_EL1 bit assignments

63

0

RES

0

7

8

4 3

PSTATE.SSBS

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

313

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

RES0, [63:8]

RES0

Reserved.

SSBS, [7:4]

AArch64 provides the PSTATE.SSBS mechanism to mark regions that are 

Speculative Store

Bypassing Safe

 (SSBS).

0x01

AArch64 provides the PSTATE.SSBS mechanism to mark regions that

are Speculative Store Bypassing Safe, but does not implement the

MSR/MRS instructions to directly read and write the PSTATE.SSBS

field.

RES0, [3:0]

RES0

Reserved.

Configurations

There are no configuration notes.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.2.65 ID_AFR0_EL1, AArch32 Auxiliary Feature Register 0, EL1

The ID_AFR0_EL1 provides information about the 

IMPLEMENTATION DEFINED

 features of the PE in

AArch32. This register is not used in the Cortex

®

-A55 core.

Bit field descriptions

ID_AFR0_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Figure 3-132: ID_AFR0_EL1 bit assignments

0

31

RES0

Reserved

63

32

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

314

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Reserved, [63:32]

Reserved.

RES0, [31:0]

 

Reserved, 

RES0

.

Configurations

AArch64 System register ID_AFR0_EL1 bits [31:0] are architecturally mapped to AArch32

System register ID_AFR0. See 

3.1.59 ID_AFR0, Auxiliary Feature Register 0

 on page 158.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.66 ID_DFR0_EL1, AArch32 Debug Feature Register 0, EL1

The ID_DFR0_EL1 provides top-level information about the debug system in AArch32.

Bit field descriptions

ID_DFR0_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Figure 3-133: ID_DFR0_EL1 bit assignments

31

12 11

8 7

0

4 3

24 23

20 19

16 15

28 27

PerfMon

MProfDbg

MMapTrc

CopTrc

CopSDbg

CopDbg

RES0

Reserved

63

32

Reserved, [63:32]

Reserved.

RES0, [31:28]

RES0

Reserved.

PerfMon, [27:24]

Indicates support for performance monitor model:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

315

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

4

Support for 

Performance Monitoring Unit version 3

 (PMUv3) System

registers, with a 16-bit evtCount field.

MProfDbg, [23:20]

Indicates support for memory-mapped debug model for M profile cores:

0

This product does not support M profile Debug architecture.

MMapTrc, [19:16]

Indicates support for memory-mapped trace model:

1

Support for Arm trace architecture, with memory-mapped access.

In the Trace registers, the ETMIDR gives more information about the implementation.

CopTrc, [15:12]

Indicates support for coprocessor-based trace model:

0

This product does not support Arm trace architecture.

RES0, [11:8]

RES0

Reserved.

CopSDbg, [7:4]

Indicates support for coprocessor-based Secure debug model:

8

This product supports the Armv8.2 Debug architecture.

CopDbg, [3:0]

Indicates support for coprocessor-based debug model:

8

This product supports the Armv8.2 Debug architecture.

Configurations

ID_DFR0_EL1 bits [31:0] are architecturally mapped to AArch32 register ID_DFR0. See

3.1.60 ID_DFR0, Debug Feature Register 0

 on page 159.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

316

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.67 ID_ISAR0_EL1, AArch32 Instruction Set Attribute Register 0, EL1

The ID_ISAR0_EL1 provides information about the instruction sets implemented by the core in

AArch32.

Bit field descriptions

ID_ISAR0_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Figure 3-134: ID_ISAR0_EL1 bit assignments

31

28 27

24 23

20 19

16 15

12 11

8 7

4 3

0

Divide

Debug

Coproc

CmpBranch

Bitfield

BitCount

Swap

RES0

Reserved

63

32

Reserved, [63:32]

Reserved.

RES0, [31:28]

RES0

Reserved.

Divide, [27:24]

Indicates the implemented Divide instructions:

0x2

SDIV

 and 

UDIV

 in the T32 instruction set.

SDIV

 and 

UDIV

 in the A32 instruction set.

Debug, [23:20]

Indicates the implemented Debug instructions:

0x1

BKPT

.

Coproc, [19:16]

Indicates the implemented coprocessor instructions:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

317

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0x0

None implemented, except for instructions separately attributed by

the architecture to provide access to AArch32 System registers and

System instructions.

CmpBranch, [15:12]

Indicates the implemented combined Compare and Branch instructions in the T32 instruction

set:

0x1

CBNZ

 and 

CBZ

.

Bitfield, [11:8]

Indicates the implemented bit field instructions:

0x1

BFC

BFI

SBFX

, and 

UBFX

.

BitCount, [7:4]

Indicates the implemented Bit Counting instructions:

0x1

CLZ

.

Swap, [3:0]

Indicates the implemented Swap instructions in the A32 instruction set:

0x0

None implemented.

Configurations

ID_ISAR0_EL1 bits [31:0] are architecturally mapped to AArch32 register ID_ISAR0. See

3.1.61 ID_ISAR0, Instruction Set Attribute Register 0

 on page 161.

In an AArch64-only implementation, this register is 

UNKNOWN

.

Must be interpreted with ID_ISAR1_EL1, ID_ISAR2_EL1, ID_ISAR3_EL1, ID_ISAR4_EL1, and

ID_ISAR5_EL1. See:

3.2.68 ID_ISAR1_EL1, AArch32 Instruction Set Attribute Register 1, EL1

 on page 318.

3.2.69 ID_ISAR2_EL1, AArch32 Instruction Set Attribute Register 2, EL1

 on page 321.

3.2.70 ID_ISAR3_EL1, AArch32 Instruction Set Attribute Register 3, EL1

 on page 323.

3.2.71 ID_ISAR4_EL1, AArch32 Instruction Set Attribute Register 4, EL1

 on page 325.

3.2.72 ID_ISAR5_EL1, AArch32 Instruction Set Attribute Register 5, EL1

 on page 327.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

318

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.68 ID_ISAR1_EL1, AArch32 Instruction Set Attribute Register 1, EL1

The ID_ISAR1_EL1 provides information about the instruction sets implemented by the core in

AArch32.

Bit field descriptions

ID_ISAR1_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Figure 3-135: ID_ISAR1_EL1 bit assignments

31

28 27

24 23

20 19

16 15

12 11

8 7

4 3

0

Jazelle

Interwork Immediate

IfThen

Extend

Except_AR

Except

Endian

Reserved

63

32

Reserved, [63:32]

Reserved.

Jazelle, [31:28]

Indicates the implemented Jazelle state instructions:

0x1

Adds the 

BXJ

 instruction, and the J bit in the PSR.

Interwork, [27:24]

Indicates the implemented interworking instructions:

0x3

• The 

BX

 instruction, and the T bit in the PSR.

• The 

BLX

 instruction. The PC loads have 

BX

-like behavior.

• Data-processing instructions in the A32 instruction set with the PC as the

destination and the S bit clear, have 

BX

-like behavior.

Immediate, [23:20]

Indicates the implemented data-processing instructions with long immediates:

0x1

• The 

MOVT

 instruction.

• The 

MOV

 instruction encodings with zero-extended 16-bit immediates.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

319

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

• The T32 

ADD

 and 

SUB

 instruction encodings with zero-extended 12-bit immediates,

and other 

ADD

ADR

, and 

SUB

 encodings cross-referenced by the pseudocode for

those encodings.

IfThen, [19:16]

Indicates the implemented If-Then instructions in the T32 instruction set:

0x1

The 

IT

 instructions, and the IT bits in the PSRs.

Extend, [15:12]

Indicates the implemented Extend instructions:

0x2

• The 

SXTB

SXTH

UXTB

, and 

UXTH

 instructions.

• The 

SXTB16

SXTAB

SXTAB16

SXTAH

UXTB16

UXTAB

UXTAB16

, and 

UXTAH

 instructions.

Except_AR, [11:8]

Indicates the implemented A profile exception-handling instructions:

0x1

The 

SRS

 and 

RFE

 instructions, and the A profile forms of the 

CPS

instruction.

Except, [7:4]

Indicates the implemented exception-handling instructions in the A32 instruction set:

0x1

The 

LDM

 (exception return), 

LDM

 (user registers), and 

STM

 (user

registers) instruction versions.

Endian, [3:0]

Indicates the implemented Endian instructions:

0x1

The 

SETEND

 instruction, and the E bit in the PSRs.

Configurations

ID_ISAR1_EL1 bits [31:0] are architecturally mapped to AArch32 register ID_ISAR1. See

3.1.62 ID_ISAR1, Instruction Set Attribute Register 1

 on page 162.

In an AArch64-only implementation, this register is 

UNKNOWN

.

Must be interpreted with ID_ISAR0_EL1, ID_ISAR2_EL1, ID_ISAR3_EL1, ID_ISAR4_EL1 and

ID_ISAR5_EL1. See:

3.2.67 ID_ISAR0_EL1, AArch32 Instruction Set Attribute Register 0, EL1

 on page 316.

3.2.69 ID_ISAR2_EL1, AArch32 Instruction Set Attribute Register 2, EL1

 on page 321.

3.2.70 ID_ISAR3_EL1, AArch32 Instruction Set Attribute Register 3, EL1

 on page 323.

3.2.71 ID_ISAR4_EL1, AArch32 Instruction Set Attribute Register 4, EL1

 on page 325.

3.2.72 ID_ISAR5_EL1, AArch32 Instruction Set Attribute Register 5, EL1

 on page 327.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

320

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.69 ID_ISAR2_EL1, AArch32 Instruction Set Attribute Register 2, EL1

The ID_ISAR2_EL1 provides information about the instruction sets implemented by the core in

AArch32.

Bit field descriptions

ID_ISAR2_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Figure 3-136: ID_ISAR2_EL1 bit assignments

31

28 27

24 23

20 19

16 15

12 11

8 7

4 3

0

MultiAccessInt

Reversal

PSR_AR

MultU

MultS

Mult

MemHint

LoadStore

Reserved

63

32

Reserved, [63:32]

Reserved.

Reversal, [31:28]

Indicates the implemented Reversal instructions:

0x2

The 

REV

REV16

REVSH

, and 

RBIT

 instructions.

PSR_AR, [27:24]

Indicates the implemented A and R profile instructions to manipulate the PSR:

0x1

The 

MRS

 and 

MSR

 instructions, and the exception return forms of data-

processing instructions.

The exception return forms of the data-processing instructions are:
• In the A32 instruction set, data-processing instructions with the PC as the destination

and the S bit set.

• In the T32 instruction set, the 

SUBSPC

LR

#N

 instruction.

MultU, [23:20]

Indicates the implemented advanced unsigned Multiply instructions:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

321

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0x2

The 

UMULL

UMLAL

, and 

UMAAL

 instructions.

MultS, [19:16]

Indicates the implemented advanced signed Multiply instructions.

0x3

• The 

SMULL

 and 

SMLAL

 instructions.

• The 

SMLABB

SMLABT

SMLALBB

SMLALBT

SMLALTB

SMLALTT

SMLATB

SMLATT

SMLAWB

,

SMLAWT

SMULBB

SMULBT

SMULTB

SMULTT

SMULWB

SMULWT

 instructions, and the Q bit

in the PSRs.

• The 

SMLAD

SMLADX

SMLALD

SMLALDX

SMLSD

SMLSDX

SMLSLD

SMLSLDX

SMMLA

SMMLAR

,

SMMLS

SMMLSR

SMMUL

SMMULR

SMUAD

SMUADX

SMUSD

, and 

SMUSDX

 instructions.

Mult, [15:12]

Indicates the implemented additional Multiply instructions:

0x2

The 

MUL

MLA

, and 

MLS

 instructions.

MultiAccessInt, [11:8]

Indicates the support for interruptible multi-access instructions:

0x0

No support. This means that the LDM and STM instructions are not

interruptible.

MemHint, [7:4]

Indicates the implemented memory hint instructions:

0x4

The 

PLD

PLI

, and 

PLDW

instructions.

LoadStore, [3:0]

Indicates the implemented additional load/store instructions:

0x2

The 

LDRD

 and 

STRD

 instructions.

The Load Acquire (

LDAB

LDAH

LDA

LDAEXB

LDAEXH

LDAEX

, and 

LDAEXD

)

and Store Release (

STLB

STLH

STL

STLEXB

STLEXH

STLEX

, and

STLEXD

) instructions.

Configurations

ID_ISAR2_EL1 bits [31:0] are architecturally mapped to AArch32 register ID_ISAR2. See

3.1.63 ID_ISAR2, Instruction Set Attribute Register 2

 on page 164.

In an AArch64-only implementation, this register is 

UNKNOWN

.

Must be interpreted with ID_ISAR0_EL1, ID_ISAR1_EL1, ID_ISAR3_EL1, ID_ISAR4_EL1, and

ID_ISAR5_EL1. See:

3.2.67 ID_ISAR0_EL1, AArch32 Instruction Set Attribute Register 0, EL1

 on page 316.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

322

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.68 ID_ISAR1_EL1, AArch32 Instruction Set Attribute Register 1, EL1

 on page 318.

3.2.70 ID_ISAR3_EL1, AArch32 Instruction Set Attribute Register 3, EL1

 on page 323.

3.2.71 ID_ISAR4_EL1, AArch32 Instruction Set Attribute Register 4, EL1

 on page 325.

3.2.72 ID_ISAR5_EL1, AArch32 Instruction Set Attribute Register 5, EL1

 on page 327.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.70 ID_ISAR3_EL1, AArch32 Instruction Set Attribute Register 3, EL1

The ID_ISAR3_EL1 provides information about the instruction sets implemented by the core in

AArch32.

Bit field descriptions

ID_ISAR3_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Figure 3-137: ID_ISAR3_EL1 bit assignments

TabBranch

31

28 27

24 23

20 19

16 15

12 11

8 7

4 3

0

T32Copy

SVC

Saturate

T32EE

SynchPrim

SIMD

TrueNOP

Reserved

63

32

Reserved, [63:32]

Reserved.

T32EE, [31:28]

Indicates the implemented T32EE instructions:

0x0

None implemented.

TrueNOP, [27:24]

Indicates support for True NOP instructions:

0x1

True 

NOP

 instructions in both the A32 and T32 instruction sets, and

additional NOP-compatible hints.

T32Copy, [23:20]

Indicates the support for T32 non flag-setting 

MOV

 instructions:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

323

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0x1

Support for T32 instruction set encoding T1 of the 

MOV

 (register)

instruction, copying from a low register to a low register.

TabBranch, [19:16]

Indicates the implemented Table Branch instructions in the T32 instruction set.

0x1

The 

TBB

 and 

TBH

 instructions.

SynchPrim, [15:12]

Indicates the implemented synchronization primitive instructions:

0x2

• The 

LDREX

 and 

STREX

 instructions.

• The 

CLREX

LDREXB

STREXB

, and 

STREXH

 instructions.

• The 

LDREXD

 and 

STREXD

 instructions.

SVC, [11:8]

Indicates the implemented SVC instructions:

0x1

The 

SVC

 instruction.

SIMD, [7:4]

Indicates the implemented 

Single Instruction Multiple Data

 (SIMD) instructions.

0x3

• The 

SSAT

 and 

USAT

 instructions, and the Q bit in the PSRs.

• The 

PKHBT

PKHTB

QADD16

QADD8

QASX

QSUB16

QSUB8

QSAX

SADD16

SADD8

SASX

,

SEL

SHADD16

SHADD8

SHASX

SHSUB16

SHSUB8

SHSAX

SSAT16

SSUB16

SSUB8

SSAX

,

SXTAB16

SXTB16

UADD16

UADD8

UASX

UHADD16

UHADD8

UHASX

UHSUB16

UHSUB8

,

UHSAX

UQADD16

UQADD8

UQASX

UQSUB16

UQSUB8

UQSAX

USAD8

USADA8

USAT16

,

USUB16

USUB8

USAX

UXTAB16

UXTB16

 instructions, and the GE[3:0] bits in the PSRs.

The SIMD field relates only to implemented instructions that perform SIMD operations

on the general-purpose registers. In an implementation that supports Advanced SIMD

and floating-point instructions, MVFR0, MVFR1, and MVFR2 give information about

the implemented Advanced SIMD instructions.

Saturate, [3:0]

Indicates the implemented Saturate instructions:

0x1

The 

QADD

QDADD

QDSUB

QSUB

 Q bit in the PSRs.

Configurations

ID_ISAR3_EL1 bits [31:0] are architecturally mapped to AArch32 register ID_ISAR3. See

3.1.64 ID_ISAR3, Instruction Set Attribute Register 3

 on page 167.

In an AArch64-only implementation, this register is 

UNKNOWN

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

324

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Must be interpreted with ID_ISAR0_EL1, ID_ISAR1_EL1, ID_ISAR2_EL1, ID_ISAR4_EL1, and

ID_ISAR5_EL1. See:

3.2.67 ID_ISAR0_EL1, AArch32 Instruction Set Attribute Register 0, EL1

 on page 316.

3.2.68 ID_ISAR1_EL1, AArch32 Instruction Set Attribute Register 1, EL1

 on page 318.

3.2.69 ID_ISAR2_EL1, AArch32 Instruction Set Attribute Register 2, EL1

 on page 321.

3.2.71 ID_ISAR4_EL1, AArch32 Instruction Set Attribute Register 4, EL1

 on page 325.

3.2.72 ID_ISAR5_EL1, AArch32 Instruction Set Attribute Register 5, EL1

 on page 327.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.71 ID_ISAR4_EL1, AArch32 Instruction Set Attribute Register 4, EL1

The ID_ISAR4_EL1 provides information about the instruction sets implemented by the core in

AArch32.

Bit field descriptions

ID_ISAR4_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Figure 3-138: ID_ISAR4_EL1 bit assignments

31

24 23

20 19

16 15

12 11

8 7

4 3

0

SynchPrim_frac

SWP_frac

28 27

PSR_M

Barrier

SMC

WriteBack WithShifts

Unpriv

Reserved

63

32

Reserved, [63:32]

Reserved.

SWP_frac, [31:28]

Indicates support for the memory system locking the bus for 

SWP

 or 

SWPB

 instructions:

0x0

SWP

 and 

SWPB

 instructions not implemented.

PSR_M, [27:24]

Indicates the implemented M profile instructions to modify the PSRs:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

325

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0x0

None implemented.

SynchPrim_frac, [23:20]

This field is used with the ID_ISAR3.SynchPrim field to indicate the implemented

synchronization primitive instructions:

0x0

• The 

LDREX

 and 

STREX

 instructions.

• The 

CLREX

LDREXB

LDREXH

STREXB

, and 

STREXH

 instructions.

• The 

LDREXD

 and 

STREXD

 instructions.

Barrier, [19:16]

Indicates the supported Barrier instructions in the A32 and T32 instruction sets:

0x1

The 

DMB

DSB

, and 

ISB

 barrier instructions.

SMC, [15:12]

Indicates the implemented 

SMC

 instructions:

0x1

The 

SMC

 instruction.

WriteBack, [11:8]

Indicates the support for Write-Back addressing modes:

0x1

Core supports all the Write-Back addressing modes as defined in

Arm

®

v8‑A.

WithShifts, [7:4]

Indicates the support for instructions with shifts.

0x4

• Support for shifts of loads and stores over the range LSL 0-3.
• Support for other constant shift options, both on load/store and other instructions.
• Support for register-controlled shift options.

Unpriv, [3:0]

Indicates the implemented unprivileged instructions.

0x2

• The 

LDRBT

LDRT

STRBT

, and 

STRT

 instructions.

• The 

LDRHT

LDRSBT

LDRSHT

, and 

STRHT

 instructions.

Configurations

ID_ISAR4_EL1 bits [31:0] are architecturally mapped to AArch32 register ID_ISAR4. See

3.1.65 ID_ISAR4, Instruction Set Attribute Register 4

 on page 169.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

326

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

In an AArch64-only implementation, this register is 

UNKNOWN

.

Must be interpreted with ID_ISAR0_EL1, ID_ISAR1_EL1, ID_ISAR2_EL1, ID_ISAR3_EL1, and

ID_ISAR5_EL1. See:

3.2.67 ID_ISAR0_EL1, AArch32 Instruction Set Attribute Register 0, EL1

 on page 316.

3.2.68 ID_ISAR1_EL1, AArch32 Instruction Set Attribute Register 1, EL1

 on page 318.

3.2.69 ID_ISAR2_EL1, AArch32 Instruction Set Attribute Register 2, EL1

 on page 321.

3.2.70 ID_ISAR3_EL1, AArch32 Instruction Set Attribute Register 3, EL1

 on page 323.

3.2.72 ID_ISAR5_EL1, AArch32 Instruction Set Attribute Register 5, EL1

 on page 327.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.72 ID_ISAR5_EL1, AArch32 Instruction Set Attribute Register 5, EL1

The ID_ISAR5_EL1 provides information about the instruction sets that the core implements.

The optional Advanced SIMD and floating-point support is not included in the base product of the

core. Arm requires licensees to have contractual rights to obtain the Advanced SIMD and floating-

point support.

Bit field descriptions

ID_ISAR5_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Figure 3-139: ID_ISAR5_EL1 bit assignments

RDM

31

12 11

8 7

0

SHA1

AES

SEVL

SHA2

4 3

16 15

20 19

CRC32

23

24

27

28

RES0

Reserved

63

32

Reserved, [63:32]

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

327

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

RES0, [31:28]

RES0

Reserved.

RDM, [27:24]

VQRDMLAH and VQRDMLSH instructions in AArch32. The value is:

0x1

VQRDMLAH and VQRDMLSH instructions are implemented.

RES0, [23:20]

RES0

Reserved.

CRC32, [19:16]

Indicates whether CRC32 instructions are implemented in AArch32 state. The value is:

0x1

CRC32B

CRC32H

CRC32W

CRC32CB

CRC32CH

, and 

CRC32CW

 instructions

are implemented.

SHA2, [15:12]

Indicates whether SHA2 instructions are implemented in AArch32 state. The possible values

are:

0x0

No SHA2 instructions implemented. This is the value when the

Cryptographic Extensions are not implemented or are disabled.

0x1

SHA256H

SHA256H2

SHA256SU0

, and 

SHA256SU1

 instructions are

implemented. This is the value when the Cryptographic Extensions

are implemented and enabled.

SHA1, [11:8]

Indicates whether SHA1 instructions are implemented in AArch32 state. The possible values

are:

0x0

No SHA1 instructions implemented. This is the value when the

Cryptographic Extensions are not implemented or are disabled.

0x1

SHA1C

SHA1P

SHA1M

SHA1H

SHA1SU0

, and 

SHA1SU1

 instructions are

implemented. This is the value when the Cryptographic Extensions

are implemented and enabled.

AES, [7:4]

Indicates whether AES instructions are implemented in AArch32 state. The possible values

are:

0x0

No AES instructions implemented. This is the value when the

Cryptographic Extensions are not implemented or are disabled.

0x2

AESE

AESD

AESMC

, and 

AESIMC

 implemented.

PMULL

 and 

PMULL2

 instructions operating on 64-bit data.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

328

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

This is the value when the Cryptographic Extensions are

implemented and enabled.

SEVL, [3:0]

Indicates whether the 

SEVL

 instruction is implemented:

0x1

SEVL

 implemented to send event local.

Configurations

ID_ISAR5_EL1 bits [31:0] are architecturally mapped to AArch32 register ID_ISAR5. See

3.1.66 ID_ISAR5, Instruction Set Attribute Register 5

 on page 170.

ID_ISAR5 must be interpreted with ID_ISAR0_EL1, ID_ISAR1_EL1, ID_ISAR2_EL1,

ID_ISAR3_EL1, and ID_ISAR4_EL1. See:

3.2.67 ID_ISAR0_EL1, AArch32 Instruction Set Attribute Register 0, EL1

 on page 316.

3.2.68 ID_ISAR1_EL1, AArch32 Instruction Set Attribute Register 1, EL1

 on page 318.

3.2.69 ID_ISAR2_EL1, AArch32 Instruction Set Attribute Register 2, EL1

 on page 321.

3.2.70 ID_ISAR3_EL1, AArch32 Instruction Set Attribute Register 3, EL1

 on page 323.

3.2.71 ID_ISAR4_EL1, AArch32 Instruction Set Attribute Register 4, EL1

 on page 325.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.73 ID_ISAR6_EL1, AArch32 Instruction Set Attribute Register 6, EL1

The ID_ISAR6_EL1 provides information about the instruction sets that the core implements.

Bit field descriptions

ID_ISAR6_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Figure 3-140: ID_ISAR6_EL1 bit assignments

31

8 7

0

DP

4 3

RES0

Reserved

63

32

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

329

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Reserved, [63:32]

Reserved.

RES0, [31:8]

RES0

Reserved.

DP, [7:4]

UDOT and SDOT instructions. The value is:

0b0001

UDOT and SDOT instructions are implemented.

RES0, [3:0]

RES0

Reserved.

Configurations

ID_ISAR6_EL1 bits [31:0] are architecturally mapped to AArch32 register ID_ISAR6. See

3.1.67 ID_ISAR6, Instruction Set Attribute Register 6

 on page 172.

There is one copy of this register that is used in both Secure and Non-secure states.

ID_ISAR6_EL1 must be interpreted with ID_ISAR0_EL1, ID_ISAR1_EL1, ID_ISAR2_EL1,

ID_ISAR3_EL1, ID_ISAR4_EL1, and ID_ISAR5_EL1. See:

3.2.67 ID_ISAR0_EL1, AArch32 Instruction Set Attribute Register 0, EL1

 on page 316.

3.2.68 ID_ISAR1_EL1, AArch32 Instruction Set Attribute Register 1, EL1

 on page 318.

3.2.69 ID_ISAR2_EL1, AArch32 Instruction Set Attribute Register 2, EL1

 on page 321.

3.2.70 ID_ISAR3_EL1, AArch32 Instruction Set Attribute Register 3, EL1

 on page 323.

3.2.71 ID_ISAR4_EL1, AArch32 Instruction Set Attribute Register 4, EL1

 on page 325.

3.2.72 ID_ISAR5_EL1, AArch32 Instruction Set Attribute Register 5, EL1

 on page 327.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.74 ID_MMFR0_EL1, AArch32 Memory Model Feature Register 0, EL1

The ID_MMFR0_EL1 provides information about the memory model and memory management

support in AArch32.

Bit field descriptions

ID_MMFR0_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

330

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-141: ID_MMFR0_EL1 bit assignments

31

12 11

8 7

0

OuterShr

PMSA

4 3

28 27

24 23

20 19

16 15

FCSE

AuxReg

TCM

ShareLvl

VMSA

InnerShr

Reserved

63

32

Reserved, [63:32]

Reserved.

InnerShr, [31:28]

Indicates the innermost Shareability domain implemented:

0x1

Implemented with hardware coherency support.

FCSE, [27:24]

Indicates support for 

Fast Context Switch Extension

 (FCSE):

0x0

Not supported.

AuxReg, [23:20]

Indicates support for Auxiliary registers:

0x2

Support for Auxiliary Fault Status Registers (AIFSR and ADFSR) and

Auxiliary Control Register.

TCM, [19:16]

Indicates support for TCMs and associated DMAs:

0x0

Not supported.

ShareLvl, [15:12]

Indicates the number of Shareability levels implemented:

0x1

Two levels of Shareability implemented.

OuterShr, [11:8]

Indicates the outermost Shareability domain implemented:

0x1

Implemented with hardware coherency support.

PMSA, [7:4]

Indicates support for a 

Protected Memory System Architecture

 (PMSA):

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

331

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0x0

Not supported.

VMSA, [3:0]

Indicates support for a 

Virtual Memory System Architecture

 (VMSA).

0x5

Support for:
• VMSAv7, with support for remapping and the Access flag.
• The PXN bit in the Short-descriptor translation table format

descriptors.

• The Long-descriptor translation table format.

Configurations

ID_MMFR0_EL1 bits [31:0] are architecturally mapped to AArch32 register ID_MMFR0. See

3.1.68 ID_MMFR0, Memory Model Feature Register 0

 on page 174.

Must be interpreted with ID_MMFR1_EL1, ID_MMFR2_EL1, ID_MMFR3_EL1, and

ID_MMFR4_EL1. See:

3.2.75 ID_MMFR1_EL1, AArch32 Memory Model Feature Register 1, EL1

 on page

332.

3.2.76 ID_MMFR2_EL1, AArch32 Memory Model Feature Register 2, EL1

 on page

334.

3.2.77 ID_MMFR3_EL1, AArch32 Memory Model Feature Register 3, EL1

 on page

337.

3.2.78 ID_MMFR4_EL1, AArch32 Memory Model Feature Register 4, EL1

 on page

339.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.75 ID_MMFR1_EL1, AArch32 Memory Model Feature Register 1, EL1

The ID_MMFR1_EL1 provides information about the memory model and memory management

support in AArch32.

Bit field descriptions

ID_MMFR1_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

332

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-142: ID_MMFR1_EL1 bit assignments

BPred

L1TstCln

L1Uni

L1Hvd

L1UniSW

L1HvdSW

L1UniVA

L1HvdVA

31

28 27

24 23

20 19

16 15

12 11

8 7

4 3

Reserved

63

32

0

Reserved, [63:32]

Reserved.

BPred, [31:28]

Indicates branch predictor management requirements:

0x4

For execution correctness, branch predictor requires no flushing at

any time.

L1TstCln, [27:24]

Indicates the supported L1 data cache test and clean operations, for Harvard or unified cache

implementation:

0x0

None supported.

L1Uni, [23:20]

Indicates the supported entire L1 cache maintenance operations, for a unified cache

implementation:

0x0

None supported.

L1Hvd, [19:16]

Indicates the supported entire L1 cache maintenance operations, for a Harvard cache

implementation:

0x0

None supported.

L1UniSW, [15:12]

Indicates the supported L1 cache line maintenance operations by set/way, for a unified cache

implementation:

0x0

None supported.

L1HvdSW, [11:8]

Indicates the supported L1 cache line maintenance operations by set/way, for a Harvard

cache implementation:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

333

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0x0

None supported.

L1UniVA, [7:4]

Indicates the supported L1 cache line maintenance operations by MVA, for a unified cache

implementation:

0x0

None supported.

L1HvdVA, [3:0]

Indicates the supported L1 cache line maintenance operations by MVA, for a Harvard cache

implementation:

0x0

None supported.

Configurations

ID_MMFR1_EL1 bits [31:0] are architecturally mapped to AArch32 register ID_MMFR1. See

3.1.69 ID_MMFR1, Memory Model Feature Register 1

 on page 175.

Must be interpreted with ID_MMFR0_EL1, ID_MMFR2_EL1, ID_MMFR3_EL1, and

ID_MMFR4_EL1. See:

3.2.74 ID_MMFR0_EL1, AArch32 Memory Model Feature Register 0, EL1

 on page

330.

3.2.76 ID_MMFR2_EL1, AArch32 Memory Model Feature Register 2, EL1

 on page

334.

3.2.77 ID_MMFR3_EL1, AArch32 Memory Model Feature Register 3, EL1

 on page

337.

3.2.78 ID_MMFR4_EL1, AArch32 Memory Model Feature Register 4, EL1

 on page

339.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.76 ID_MMFR2_EL1, AArch32 Memory Model Feature Register 2, EL1

The ID_MMFR2_EL1 provides information about the implemented memory model and memory

management support in AArch32.

Bit field descriptions

ID_MMFR2_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

334

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-143: ID_MMFR2_EL1 bit assignments

31

12 11

8 7

0

HWAccFlg

4 3

28 27

24 23

20 19

16 15

WFIStall

MemBarr

UniTLB

HvdTLB LL1HvdRng L1HvdBG

L1HvdFG

Reserved

63

32

Reserved, [63:32]

Reserved.

HWAccFlg, [31:28]

Hardware access flag. Indicates support for a hardware access flag, as part of the VMSAv7

implementation:

0x0

Not supported.

WFIStall, [27:24]

Wait For Interrupt Stall. Indicates the support for 

Wait For Interrupt

 (WFI) stalling:

0x1

Support for WFI stalling.

MemBarr, [23:20]

Memory Barrier. Indicates the supported CP15 memory barrier operations.

0x2

Supported CP15 memory barrier operations are:

Data Synchronization Barrier

 (DSB).

Instruction Synchronization Barrier

 (ISB).

Data Memory Barrier

 (DMB).

UniTLB, [19:16]

Unified TLB. Indicates the supported TLB maintenance operations, for a unified TLB

implementation.

0x6

Supported unified TLB maintenance operations are:
• Invalidate all entries in the TLB.
• Invalidate TLB entry by MVA.
• Invalidate TLB entries by ASID match.
• Invalidate instruction TLB and data TLB entries by MVA All ASID.

This is a shared unified TLB operation.

• Invalidate Hyp mode unified TLB entry by MVA.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

335

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

• Invalidate entire Non-secure EL1 and EL0 unified TLB.
• Invalidate entire Hyp mode unified TLB.

TLBIMVALIS

TLBIMVAALIS

TLBIMVALHIS

TLBIMVAL

TLBIMVAAL

, and

TLBIMVALH

.

TLBIIPAS2IS

TLBIIPAS2LIS

TLBIIPAS2

, and 

TLBIIPAS2L

.

HvdTLB, [15:12]

Harvard TLB. Indicates the supported TLB maintenance operations, for a Harvard TLB

implementation:

0x0

Not supported.

LL1HvdRng, [11:8]

L1 Harvard cache Range. Indicates the supported L1 cache maintenance range operations,

for a Harvard cache implementation:

0x0

Not supported.

L1HvdBG, [7:4]

L1 Harvard cache Background fetch. Indicates the supported L1 cache background prefetch

operations, for a Harvard cache implementation:

0x0

Not supported.

L1HvdFG, [3:0]

L1 Harvard cache Foreground fetch. Indicates the supported L1 cache foreground prefetch

operations, for a Harvard cache implementation:

0x0

Not supported.

Configurations

ID_MMFR2_EL1 bits [31:0] are architecturally mapped to AArch32 register ID_MMFR2. See

3.1.70 ID_MMFR2, Memory Model Feature Register 2

 on page 177.

Must be interpreted with ID_MMFR0_EL1, ID_MMFR1_EL1, ID_MMFR3_EL1, and

ID_MMFR4_EL1. See:

3.2.74 ID_MMFR0_EL1, AArch32 Memory Model Feature Register 0, EL1

 on page

330.

3.2.75 ID_MMFR1_EL1, AArch32 Memory Model Feature Register 1, EL1

 on page

332.

3.2.77 ID_MMFR3_EL1, AArch32 Memory Model Feature Register 3, EL1

 on page

337.

3.2.78 ID_MMFR4_EL1, AArch32 Memory Model Feature Register 4, EL1

 on page

339.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

336

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.77 ID_MMFR3_EL1, AArch32 Memory Model Feature Register 3, EL1

The ID_MMFR3_EL1 provides information about the memory model and memory management

support in AArch32.

Bit field descriptions

ID_MMFR3_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Figure 3-144: ID_MMFR3_EL1 bit assignments

31

12 11

8 7

0

4 3

28 27

24 23

20 19

16 15

PAN

CohWalk

CMemSz

Supersec

MaintBcst

BPMaint

CMaintSW CMaintVA

Reserved

63

32

Reserved, [63:32]

Reserved.

Supersec, [31:28]

Supersections. Indicates support for supersections:

0x0

Supersections supported.

CMemSz, [27:24]

Cached memory size. Indicates the size of physical memory that is supported by the core

caches:

0x2

1TByte or more, corresponding to a 40-bit, or larger physical address

range.

CohWalk, [23:20]

Coherent walk. Indicates whether translation table updates require a clean to the point of

unification:

0x1

Updates to the translation tables do not require a clean to the point

of unification to ensure visibility by subsequent translation table

walks.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

337

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

PAN, [19:16]

Privileged Access Never.

0x2

PAN supported and new 

ATS1CPRP

 and 

ATS1CPWP

 instructions supported.

MaintBcst, [15:12]

Maintenance broadcast. Indicates whether cache, TLB, and branch predictor operations are

broadcast:

0x2

Cache, TLB, and branch predictor operations affect structures

according to Shareability and defined behavior of instructions.

BPMaint, [11:8]

Branch predictor maintenance. Indicates the supported branch predictor maintenance

operations.

0x2

Supported branch predictor maintenance operations are:
• Invalidate all branch predictors.
• Invalidate branch predictors by MVA.

CMaintSW, [7:4]

Cache maintenance by set/way. Indicates the supported cache maintenance operations by

set/way.

0x1

Supported hierarchical cache maintenance operations by set/way

are:
• Invalidate data cache by set/way.
• Clean data cache by set/way.
• Clean and invalidate data cache by set/way.

CMaintVA, [3:0]

Cache maintenance by 

Virtual Address

 (VA). Indicates the supported cache maintenance

operations by VA.

0x1

Supported hierarchical cache maintenance operations by VA are:
• Invalidate data cache by VA.
• Clean data cache by VA.
• Clean and invalidate data cache by VA.
• Invalidate instruction cache by VA.
• Invalidate all instruction cache entries.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

338

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Configurations

ID_MMFR3_EL1 bits [31:0] are architecturally mapped to AArch32 register ID_MMFR3. See

3.1.71 ID_MMFR3, Memory Model Feature Register 3

 on page 179.

Must be interpreted with ID_MMFR0_EL1, ID_MMFR1_EL1, ID_MMFR2_EL1, and

ID_MMFR4_EL1. See:

3.2.74 ID_MMFR0_EL1, AArch32 Memory Model Feature Register 0, EL1

 on page

330.

3.2.75 ID_MMFR1_EL1, AArch32 Memory Model Feature Register 1, EL1

 on page

332.

3.2.76 ID_MMFR2_EL1, AArch32 Memory Model Feature Register 2, EL1

 on page

334.

3.2.78 ID_MMFR4_EL1, AArch32 Memory Model Feature Register 4, EL1

 on page

339.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.78 ID_MMFR4_EL1, AArch32 Memory Model Feature Register 4, EL1

The ID_MMFR4_EL1 provides information about the memory model and memory management

support in AArch32.

Bit field descriptions

ID_MMFR4_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Figure 3-145: ID_MMFR4_EL1 bit assignments

31

8 7

0

4 3

RAZ

AC2

SpecSEI

HPDS

CNP

LSM

XNX

11

12

15

16

19

20

23

24

Reserved

63

32

Reserved, [63:32]

Reserved.

RAZ, [31:24]

 

Read-As-Zero.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

339

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

LSM, [23:20]

Load/Store Multiple. Indicates whether adjacent loads or stores can be combined. The value

is:

0x0

LSMAOE and nTLSMD bit not supported.

HPDS, [19:16]

Presence of Hierarchical Disables. Enables an operating system or hypervisor to hand over

up to 4 bits of the last level translation table descriptor (bits[62:59] of the translation table

entry) for use by hardware for 

IMPLEMENTATION DEFINED

 usage. The value is:

0x2

Hierarchical Permission Disables and Hardware allocation of

bits[62:59] supported.

CNP, [15:12]

Common Not Private. Indicates support for selective sharing of TLB entries across multiple

PEs. The value is:

0x1

CnP bit supported.

XNX, [11:8]

Execute Never. Indicates whether the stage 2 translation tables allows the stage 2 control of

whether memory is executable at EL1 independent of whether memory is executable at EL0.

The value is:

0x1

EL0/EL1 execute control distinction at stage 2 bit supported.

AC2, [7:4]

Indicates the extension of the ACTLR and HACTLR registers using ACTLR2 and HACTLR2.

The value is:

0x1

ACTLR2 and HACTLR2 are implemented.

SpecSEI, [3:0]

Describes whether the core can generate SError interrupt exceptions from Speculative reads

of memory, including Speculative instruction fetches. The value is:

0x0

The core never generates an SError interrupt due to an External

abort on a Speculative read.

Configurations

ID_MMFR4_EL1 bits [31:0] are architecturally mapped to AArch64 register ID_MMFR4. See

3.1.72 ID_MMFR4, Memory Model Feature Register 4

 on page 181.

There is one copy of this register that is used in both Secure and Non-secure states.

Must be interpreted with ID_MMFR0_EL1, ID_MMFR1_EL1, ID_MMFR2_EL1, and

ID_MMFR3_EL1. See:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

340

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.74 ID_MMFR0_EL1, AArch32 Memory Model Feature Register 0, EL1

 on page

330.

3.2.75 ID_MMFR1_EL1, AArch32 Memory Model Feature Register 1, EL1

 on page

332.

3.2.76 ID_MMFR2_EL1, AArch32 Memory Model Feature Register 2, EL1

 on page

334.

3.2.77 ID_MMFR3_EL1, AArch32 Memory Model Feature Register 3, EL1

 on page

337.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.79 ID_PFR0_EL1, AArch32 Processor Feature Register 0, EL1

The ID_PFR0_EL1 provides top-level information about the instruction sets supported by the core

in AArch32.

Bit field descriptions

ID_PFR0_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Figure 3-146: ID_PFR0_EL1 bit assignments

31

12 11

8 7

0

State2

State1

16 15

4 3

State0

State3

28

RAS

27

RES0

19

20

CSV2

Reserved

63

32

Reserved, [63:32]

Reserved.

RAS, [31:28]

RAS extension version. The value is:

0x1

Version 1 of the RAS extension is present.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

341

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

RES0, [27:20]

RES0

Reserved.

CSV2, [19:16]

0x0

This device does not disclose whether branch targets trained in one

context can affect speculative execution in a different context.

State3, [15:12]

Indicates support for 

Thumb Execution Environment

 (T32EE) instruction set. This value is:

0x0

Core does not support the T32EE instruction set.

State2, [11:8]

Indicates support for Jazelle. This value is:

0x1

Core supports trivial implementation of Jazelle.

State1, [7:4]

Indicates support for T32 instruction set. This value is:

0x3

Core supports T32 encoding after the introduction of Thumb-2

technology, and for all 16-bit and 32-bit T32 basic instructions.

State0, [3:0]

Indicates support for A32 instruction set. This value is:

0x1

A32 instruction set implemented.

Configurations

ID_PFR0_EL1 bits [31:0] are architecturally mapped to AArch32 register ID_PFR0. See 

3.1.73

ID_PFR0, Processor Feature Register 0

 on page 183.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.80 ID_PFR1_EL1, AArch32 Processor Feature Register 1, EL1

The ID_PFR1_EL1 provides information about the programmers model and architecture extensions

supported by the core.

Bit field descriptions

ID_PFR1_EL1 is a 64-bit register, and must be interpreted with ID_PFR0. It is part of the

Identification registers functional group.

This register is Read Only.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

342

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-147: ID_PFR1_EL1 bit assignments

31

12 11

8 7

0

GIC CPU

4 3

16 15

Virtualization

20 19

27

28

GenTimer

MProgMod

Security

ProgMod

RES0

Reserved

63

32

Reserved, [63:32]

Reserved.

GIC CPU, [31:28]

GIC CPU support:

0x0

GIC CPU interface is disabled, GICCDISABLE is HIGH.

0x1

GIC CPU interface is implemented and enabled, GICCDISABLE is

LOW.

RES0, [27:20]

RES0

Reserved.

GenTimer, [19:16]

Generic Timer support:

0x1

Generic Timer is implemented.

Virtualization, [15:12]

Indicates support for Virtualization:

0x1

The following Virtualization is implemented:
• The SCR.SIF bit.
• The modifications to the SCR.AW and SCR.FW bits described in

the Virtualization Extensions.

• The MSR (Banked register) and MRS (Banked register)

instructions.

• The ERET instruction.
• EL2, Hyp mode, the HVC instruction implemented.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

343

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

MProgMod, [11:8]

M profile programmers model support:

0x0

Not supported.

Security, [7:4]

Security support:

0x1

The following Security items are implemented:
• The VBAR register.
• The TTBCR.PD0 and TTBCR.PD1 bits.
• The ability to access Secure or Non-secure physical memory is

supported.

• EL3, Monitor mode, the SMC instruction implemented.

ProgMod, [3:0]

Indicates support for the standard programmers model for Armv4 and later.

Model must support User, FIQ, IRQ, Supervisor, Abort, Undefined, and System modes:

0x1

Supported.

Configurations

ID_PFR1_EL1 bits [31:0] are architecturally mapped to AArch32 register ID_PFR1. See 

3.1.74

ID_PFR1, Processor Feature Register 1

 on page 184.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.2.81 ID_PFR2_EL1, AArch32 Processor Feature Register 2, EL1

The ID_PFR2_EL1 provides information about the programmers model and architecture extensions

that are supported by the core.

Bit field descriptions

ID_PFR2_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

344

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-148: ID_PFR2_EL1 bit assignments

31

0

4 3

CSV3

RES0

7

SSBS

Reserved

63

32

Reserved, [63:32]

Reserved.

RES0, [31:8]

RES0

Reserved.

SSBS, [7:4]

1

AArch32 provides the PSTATE.SSBS mechanism to mark regions that are 

Speculative

Store Bypassing Safe

 (SSBS).

CSV3, [3:0]

1

Data that are loaded under speculation with a permission or domain fault cannot be

used to form an address or generate condition codes to be used by instructions newer

than the load in the speculative sequence. This is the reset value.

Configurations

There are no configuration notes.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

345

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.82 IFSR32_EL2, Instruction Fault Status Register, EL2

The IFSR32_EL2 allows access to the AArch32 IFSR register from AArch64 state only. Its value has

no effect on execution in AArch64 state.

Bit field descriptions

IFSR32_EL2 is a 64-bit register, and is part of the Exception and fault handling registers functional

group.

There are two formats for this register. The current translation table format determines which

format of the register is used.

3.2.82.1 IFSR32_EL2 with Short-descriptor translation table format

 on page 346.

3.2.82.2 IFSR32_EL2 with Long-descriptor translation table format

 on page 347.

Configurations

IFSR32_EL2 bits [31:0] are architecturally mapped to AArch32 register IFSR(NS). See 

3.1.75

IFSR, Instruction Fault Status Register

 on page 186.

RW fields in this register reset to 

UNKNOWN

 values.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.2.82.1 IFSR32_EL2 with Short-descriptor translation table format

IFSR32_EL2 has a specific format when using the Short-descriptor translation table format.

The following figure shows the IFSR32_EL2 bit assignments when using the Short-descriptor

translation table format.

When TTBCR.EAE==0:

Figure 3-149: IFSR32_EL2 bit assignments for Short-descriptor translation table format

31

13 12 11 10 9 8

4 3

0

ExT

FS[4]

FS[3:0]

17 16 15

LPAE

FnV

RES0

Reserved

63

32

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

346

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Reserved, [63:32]

Reserved.

ExT, [12]

External abort type.

 

Read as zero.

For aborts other than external aborts, this bit always returns 0.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.2.82.2 IFSR32_EL2 with Long-descriptor translation table format

IFSR32_EL2 has a specific format when using the Long-descriptor translation table format.

The following figure shows the IFSR32_EL2 bit assignments when using the Long-descriptor

translation table format.

When TTBCR.EAE==1:

Figure 3-150: IFSR32_EL2 bit assignments for Long-descriptor translation table format

31

13 12 11 10 9 8

5

0

ExT

Status

6

17 16 15

FnV

LPAE

RES0

Reserved

63

32

Reserved, [63:32]

Reserved.

ExT, [12]

External abort type.

 

Read as zero.

For aborts other than external aborts, this bit always returns 0.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

347

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.2.83 LORC_EL1, LORegion Control Register, EL1

The LORC_EL1 register enables and disables LORegions, and selects the current LORegion

descriptor.

Bit field descriptions

LORC_EL1 is a 64-bit register and is part of the Virtual memory control registers functional group.

Figure 3-151: LORC_EL1 bit assignments

63

0

RES

0

1

2

EN

3

4

DS

RES0, [63:4]

Reserved, 

RES0

.

DS, [3:2]

Descriptor Select. Number that selects the current LORegion descriptor that is accessed by

the LORSA_EL1, LOREA_EL1, and LORN_EL1 registers.

RES0, [1]

Reserved, 

RES0

.

EN, [0]

Enable. The possible values are:

0

Disabled. This is the reset value.

1

Enabled.

Configurations

The LORC_EL1 register is only applicable to the AArch64 state and is not accessible at any

Exception level in AArch32.

RW fields in this register reset to architecturally 

UNKNOWN

 values.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

348

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.84 LOREA_EL1, LORegion End Address Register, EL1

The LOREA_EL1 register holds the physical address of the end of the LORegion described in the

current LORegion descriptor selected by LORC_EL1.DS.

Bit field descriptions

LOREA_EL1 is a 64-bit register and is part of the Virtual memory control registers functional group.

Figure 3-152: LOREA_EL1 bit assignments

EA

63

0

15

16

48 47

RES

0

[63:48]

Reserved, 

RES0

.

EA, [47:16]

End physical address bits.

[15:0]

Reserved, 

RES0

.

Configurations

The LOREA_EL1 register is only applicable to the AArch64 state and is not accessible at any

exception level in AArch32.

If no LORegion descriptors are supported by the core, then this register is 

RES0

.

If LORC_EL1.DS points to a LORegion that is not supported by the core, then this register is

RES0

.

RW fields in this register reset to architecturally 

UNKNOWN

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.2.85 LORID_EL1, Limited Order Region Identification Register, EL1

The LORID_EL1 indicates the number of LORegions and LORegion descriptors supported by the

Cortex

®

-A55 core.

Bit field descriptions

LORID_EL1 is a 64-bit register, and is part of the Virtual memory control registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

349

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

This register is Read Only.

Figure 3-153: LORID_EL1 bit assignments

23

8

0

63

24

16

7

LR

LD

15

RES

0

RES0, [63:24]

 

Reserved, 

RES0

.

LD, [23:16]

Indicates the number of LOR Descriptors supported by the core. The value is:

0x4

Four LOR Descriptors supported.

RES0, [15:8]

 

Reserved, 

RES0

.

LR, [7:0]

Indicates the number of LORegions supported by the core. The value is:

0x4

Four LORegions supported.

Configurations

The LORID_EL1 is only applicable to the AArch64 state and is not accessible at any

exception level in AArch32.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.2.86 LORN_EL1, LORegion Number Register, EL1

The LORN_EL1 register holds the number of the LORegion described in the current LORegion

descriptor that is selected by LORC_EL1.DS.

Bit field descriptions

LORN_EL1 is a 64-bit register and is part of the Virtual memory control registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

350

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-154: LORN_EL1 bit assignments

63

0

RES

0

1

2

Num

RES0, [63:2]

Reserved, 

RES0

.

Num, [1:0]

Indicates the LORegion number.

Configurations

The LORN_EL1 register is only applicable to the AArch64 state and is not accessible at any

Exception level in AArch32.

RW fields in this register reset to architecturally 

UNKNOWN

 values.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.87 LORSA_EL1, LORegion Start Address Register, EL1

The LORSA_EL1 register indicates whether the current LORegion descriptor selected by

LORC_EL1.DS is is enabled, and holds the physical address of the start of the LORegion.

Bit field descriptions

LORSA_EL1 is a 64-bit register and is part of the Virtual memory control registers functional group.

Figure 3-155: LORSA_EL1 bit assignments

SA

63

0

1

15

16

48 47

Valid

RES

0

RES0, [63:48]

Reserved, 

RES0

.

SA, [47:16]

Start physical address bits.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

351

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

RES0, [15:1]

Reserved, 

RES0

.

Valid, [0]

Valid. Indicates whether the LORegion Descriptor is enabled. The possible values are:

0

Not valid. This is the reset value.

1

Valid.

Configurations

The LORSA_EL1 register is only applicable to the AArch64 state and is not accessible at any

exception level in AArch32.

If no LORegion descriptors are supported by the core, then this register is 

RES0

.

If LORC_EL1.DS points to a LORegion that is not supported by the core, then this register is

RES0

.

RW fields in this register reset to architecturally 

UNKNOWN

 values.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.2.88 MDCR_EL3, Monitor Debug Configuration Register, EL3

The MDCR_EL3 provides configuration options for Security to self-hosted debug.

Bit field descriptions

MDCR_EL3 is a 64-bit register, and is part of:
• The Debug registers functional group.
• The Security registers functional group.

Figure 3-156: MDCR_EL3 bit assignments

31

0

TPM

20 19

21

22

16 15

17

18

14 13

11 10 9

6

7

8

5

TDA
TDOSA

SPD32

SDD

SPME

EDAD

EPMAD

RES0

Reserved

63

32

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

352

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Reserved, [63:32]

Reserved.

RES0, [31:22]

RES0

Reserved.

EPMAD, [21]

External debugger access to Performance Monitors registers disabled. This disables access to

these registers by an external debugger. The possible values are:

0

Access to Performance Monitors registers from external debugger is

permitted.

1

Access to Performance Monitors registers from external debugger is

disabled, unless overridden by authentication interface.

EDAD, [20]

External debugger access to breakpoint and watchpoint registers disabled. This disables

access to these registers by an external debugger. The possible values are:

0

Access to breakpoint and watchpoint registers from external

debugger is permitted.

1

Access to breakpoint and watchpoint registers from external

debugger is disabled, unless overridden by authentication interface.

SPME, [17]

Secure performance monitors enable. This enables event counting exceptions from Secure

state. The possible values are:

0

Event counting prohibited in Secure state.

1

Event counting allowed in Secure state.

SPD32, [15:14]

AArch32 Secure privileged debug. Enables or disables debug exceptions from Secure state

if Secure EL1 is using AArch32, other than software breakpoint instructions. The possible

values are:

00

Legacy mode. Debug exceptions from Secure EL1 are enabled only if

AArch32SelfHostedSecurePrivilegedInvasiveDebugEnabled()

.

01

Reserved.

10

Secure privileged debug disabled. Debug exceptions from Secure EL1

are disabled.

11

Secure privileged debug enabled. Debug exceptions from Secure EL1

are enabled.

The reset value is 

UNKNOWN

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

353

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

TDOSA, [10]

Trap accesses to the OS Debug system registers, OSLAR_EL1, OSLSR_EL1, OSDLR_EL1, and

DBGPRCR_EL1 OS.

0

Accesses are not trapped.

1

Accesses to the OS Debug system registers are trapped to EL3.

The reset value is 

UNKNOWN

.

TDA, [9]

Trap accesses to the remaining sets of Debug registers to EL3.

0

Accesses are not trapped.

1

Accesses to the remaining Debug system registers are trapped to

EL3.

The reset value is 

UNKNOWN

.

Configurations

There are no configuration notes.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.89 MIDR_EL1, Main ID Register, EL1

The MIDR_EL1 provides identification information for the core, including an implementer code for

the device and a device ID number.

Bit field descriptions

MIDR_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is Read Only.

Figure 3-157: MIDR_EL1 bit assignments

Variant

Implementer

31

23

20 19

16 15

4 3

0

Architecture

PartNum

Revision

24

Reserved

63

32

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

354

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Reserved, [63:32]

Reserved.

Implementer, [31:24]

Indicates the implementer code. This value is:

0x41

ASCII character 'A' - implementer is Arm Limited.

Variant, [23:20]

Indicates the variant number of the core. This is the major revision number 

x

 in the r

x

 part of

the r

x

p

y

 description of the product revision status. This value is:

0x3

r2p0.

Architecture, [19:16]

Indicates the architecture code. This value is:

0xF

Defined by CPUID scheme.

PartNum, [15:4]

Indicates the primary part number. This value is:

0xD05

Cortex

®

-A55 core.

Revision, [3:0]

Indicates the minor revision number of the core. This is the minor revision number 

y

 in the p

y

part of the r

x

p

y

 description of the product revision status. This value is:

0x0

r2p0.

Configurations

The MIDR_EL1 bits [31:0] are:
• Architecturally mapped to the AArch32 MIDR register. See 

3.1.76 MIDR, Main ID

Register

 on page 188.

• Architecturally mapped to external MIDR_EL1 register.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

355

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.90 MPIDR_EL1, Multiprocessor Affinity Register, EL1

The MPIDR_EL1 provides an additional core identification mechanism for scheduling purposes in a

cluster.

Bit field descriptions

MPIDR_EL1 is a 64-bit register, and is part of the Other system control registers functional group.

This register is read-only.

Figure 3-158: MPIDR_EL1 bit assignments

63

40

Aff3

39

32 31

U

30

UNK

29 25 24

Aff2

23

16

Aff1

15

8

Aff0

7

0

MT

RES

1

RES

0

RES0, [63:40]

RES0

Reserved.

Aff3, [39:32]

Affinity level 3. Highest level affinity field.

CLUSTERID

Indicates the value read in the CLUSTERIDAFF3 configuration signal.

RES1, [31]

RES1

Reserved.

U, [30]

Indicates a single core system, as distinct from core 0 in a cluster. This value is:

0

Core is part of a multiprocessor system. This is the value for

implementations with more than one core, and for implementations

with an ACE manager interface or a CHI requester interface.

[29:25]

UNK

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

356

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

MT, [24]

Indicates whether the lowest level of affinity consists of logical cores that are implemented

using a multithreading type approach. This value is:

1

Performance of PEs at the lowest affinity level is interdependent.

Affinity0 represents threads. Cortex

®

-A55 is not multithreaded, but

may be in a system with other cores that are multithreaded.

Aff2, [23:16]

Affinity L2. Second highest level affinity field.

CLUSTERID

Indicates the value read in the CLUSTERIDAFF2 configuration signal.

Aff1, [15:12]

Part of Affinity L1. Third highest level affinity field.

RAZ

Read-As-Zero.

Aff1, [11:8]

Part of Affinity L1. Third highest level affinity field.

CPUID

Identification number for each CPU in the cluster:

0x0

MP1: CPUID: 0.

to

0x7

MP8: CPUID: 7.

Aff0, [7:0]

Affinity level 0. The level identifies individual threads within a multithreaded core. The

Cortex

®

-A55 core is single-threaded, so this field has the value 

0x00

.

Configurations

MPIDR_EL1[31:0] is:
• Architecturally mapped to AArch32 register MPIDR. See 

3.1.77 MPIDR, Multiprocessor

Affinity Register

 on page 189.

• Mapped to external register EDDEVAFF0.

MPIDR_EL1[63:32] is mapped to external register EDDEVAFF1.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

357

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.91 PAR_EL1, Physical Address Register, EL1

The PAR_EL1 returns the output address from an address translation instruction that executed

successfully, or fault information if the instruction did not execute successfully.

Bit field descriptions, PAR_EL1.F is 0

The following figure shows the PAR bit assignments when PAR.F is 0.

Figure 3-159: PAR bit assignments, PAR_EL1.F is 0

63

0

6

7

1

12

PA

LPAE

NS

8

9

10

11

IMP DEF

F

SH

39

40

55

56

ATTR

res0

IMP DEF, [10]

IMPLEMENTATION DEFINED

. Bit[10] is 

RES0

.

F, [0]

Indicates whether the instruction performed a successful address translation.

0

Address translation completed successfully.

1

Address translation aborted.

Configurations

There are no configuration notes.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

Bit field descriptions, PAR_EL1.F is 1

See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.92 REVIDR_EL1, Revision ID Register, EL1

The REVIDR_EL1 provides revision information, additional to MIDR_EL1, that identifies minor fixes

(errata) which might be present in a specific implementation of the Cortex

®

-A55 core.

Bit field descriptions

REVIDR_EL1 is a 64-bit register, and is part of the Identification registers functional group.

This register is read-only.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

358

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-160: REVIDR_EL1 bit assignments

31

0

IMPLEMENTATION DEFINED

Reserved

63

32

Reserved, [63:32]

Reserved.

IMPLEMENTATION DEFINED

, [31:0]

 

IMPLEMENTATION DEFINED

.

Configurations

REVIDR_EL1 bits [31:0] are architecturally mapped to AArch32 register REVIDR. See 

3.1.79

REVIDR, Revision ID Register

 on page 196.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.93 RVBAR_EL3, Reset Vector Base Address Register, EL3

If EL3 is the highest Exception level implemented, RVBAR_EL3 contains the 

IMPLEMENTATION

DEFINED

 address that execution starts from after reset when executing in AArch64 state.

Bit field descriptions

RVBAR_EL3 is a 64-bit register, and is part of the Reset management registers functional group.

This register is Read Only.

Figure 3-161: RVBAR_EL3 bit assignments

0

Reset Vector Base Address

63

44 43

res0

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

359

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

RES0, [63:40]

 

Reserved, 

RES0

.

RVBA, [39:0]

Reset Vector Base Address. The address that execution starts from after reset when

executing in 64-bit state. Bits[1:0] of this register are 

0b00

, as this address must be aligned,

and bits [63:40] are 

0x000000

 because the address must be within the physical address size

supported by the core.

The Reset Vector Base Address is determined by the signal RVBARADDRx.

Configurations

There is no configuration information.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.2.94 SCTLR_EL1, System Control Register, EL1

The SCTLR_EL1 provides top level control of the system, including its memory system, at EL1 and

EL0.

Bit field descriptions

SCTLR_EL1 is a 64-bit register, and is part of the Other system control registers functional group.

Figure 3-162: SCTLR_EL1 bit assignments

31

0

M

A

C

I

SA

CP15BEN

RAZ/WI

SED
UMA

SA0

EE

DZE

nTWI

UCT

E0E

UCI

THEE

25

26

24 23

20

18

19

17 16 15

13

14

12 11 10

8

9

7 6 5

3

4

2 1

27

28

29

30

21

22

RES1

WXN

nTWE

RES0

RES1

SPAN

Reserved

63

32

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

360

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Reserved, [63:32]

Reserved.

EE, [25]

Exception endianness. The value of this bit controls the endianness for explicit data accesses

at EL1. This value also indicates the endianness of the translation table data for translation

table lookups. The possible values of this bit are:

0

Little-endian.

1

Big-endian.

The reset value of this bit is determined by the CFGEND configuration signal.

E0E, [24]

Endianness of explicit data access at EL0. The possible values are:

0

Explicit data accesses at EL0 are little-endian. This is reset value.

1

Explicit data accesses at EL0 are big-endian.

SED, [8]

SETEND instruction disable. The possible values are:

0

The SETEND instruction is enabled. This is the reset value.

1

The SETEND instruction is 

UNDEFINED

.

Configurations

SCTLR_EL1 bits [31:0] are architecturally mapped to AArch32 register SCTLR(NS) See 

3.1.81

SCTLR, System Control Register

 on page 197.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.2.95 SCTLR_EL2, System Control Register, EL2

The SCTLR_EL2 provides top-level control of the system, including its memory system at EL2.

Bit field descriptions

SCTLR_EL2 is a 64-bit register, and is part of:
• The Virtualization registers functional group
• The Other system control registers functional group

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

361

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-163: SCTLR_EL2 bit assignments

31

0

EE

25

26

20 19 18

12 11

2 1

4 3

WXN

I

C A M

SA

30 29 28 27

24 23 22 21

17 16 15 14 13

10

6 5

RES0

RES1

Reserved

63

32

Apart from bits [12], [2], and [0], this register resets to 

UNKNOWN

 values.

Reserved, [63:32]

Reserved.

Configurations

SCTLR_EL2 bits [31:0] are architecturally mapped to AArch32 register HSCTLR. See 

3.1.56

HSCTLR, Hyp System Control Register

 on page 155.

If EL2 is not implemented, this register is 

RES0

 from EL3.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.96 SCTLR_EL3, System Control Register, EL3

The SCTLR_EL3 provides top level control of the system, including its memory system at EL3.

Bit field descriptions

SCTLR_EL3 is a 64-bit register, and is part of the Other system control registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

362

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-164: SCTLR_EL3 bit assignments

31

0

EE

25

26

20 19 18

12 11

2 1

4 3

WXN

I

C A M

SA

30 29 28 27

24 23 22 21

17 16 15 14 13

10

6 5

RES0

RES1

Reserved

63

32

Reserved, [63:32]

Reserved.

EE, [25]

Exception endianness. This bit controls the endianness for:
• Explicit data accesses at EL3.
• Stage 1 translation table walks at EL3.

The possible values are:

0

Little endian. This is the reset value.

1

Big endian.

Configurations

Some or all RW fields of this register have defined reset values. These apply only if the PE

resets into EL3 using AArch64. Otherwise, RW fields in this register reset to architecturally

UNKNOWN

 values.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.2.97 TCR_EL1, Translation Control Register, EL1

The TCR_EL1 determines which Translation base registers define the base address register for a

translation table walk required for stage 1 translation of a memory access from EL0 or EL1 and

holds Cacheability and Shareability information.

Bit field descriptions

TCR_EL1 is a 64-bit register, and is part of the Virtual memory control registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

363

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-165: TCR_EL1 bit assignments

63

51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35

IPS

34

32

HWU162

HWU161

HWU160

HWU159

HWU062

HWU061

HWU060

HWU059

HPD1

HPD0

HD

HA

TBI1

TBI0

AS

TG1

31 30

SH1

29 28 27 26 25 24 23

A1

22

T1SZ

21

16

TG0

15 14

SH0

13 12 11 10 9 8 7 6

T0SZ

5

0

ORGN1

IRGN1

EPD

ORGN0

IRGN0

EPD

RES

0

Bits[50:39], architecturally defined, are implemented in the core.

HD, [40]

Hardware management of dirty state in stage 1 translations from EL0 and EL1. The possible

values are:

0

Stage 1 hardware management of dirty state disabled.

1

Stage 1 hardware management of dirty state enabled, only if the HA

bit is also set to 1.

HA, [39]

Hardware Access flag update in stage 1 translations from EL0 and EL1. The possible values

are:

0

Stage 1 Access flag update disabled.

1

Stage 1 Access flag update enabled.

Configurations

TCR_EL1 is architecturally mapped to AArch32 register TTBCR(NS).

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

364

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

RW fields in this register reset to 

UNKNOWN

 values.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.98 TCR_EL2, Translation Control Register, EL2

The TCR_EL2 controls translation table walks required for stage 1 translation of a memory access

from EL2 and holds cacheability and shareability information.

Bit field descriptions

TCR_EL2 is a 64-bit register, and is part of:
• The Virtualization registers functional group.
• The Virtual memory control registers functional group.

The register has configurations of bit assignment dependent upon whether the core is running a

hypervisor or running a host Host Operating System. This is controlled by the value of the E2H bit

in register HCR_EL2:

0

Hpervisor configuration, see 

When HCR_EL2.E2H==0

.

1

Host Operating System configuration: HCR_EL2.E2H==1 Address translation

aborted, see 

When HCR_EL2.E2H==1

.

Configurations

TCR_EL2 is architecturally mapped to AArch32 register HTCR. See the 

Arm

®

 Architecture

Reference Manual for A-profile architecture

.

If EL2 is not implemented, this register is 

RES0

 from EL3.

RW fields in this register reset to architecturally 

UNKNOWN

 values.

When HCR_EL2.E2H==0

Figure 3-166: TCR_EL2 bit assignments when HCR_EL2.E2H==0

63

32 31 30 29 28 27 26 25 24 23 22 21 20 19

PS

18

16

TD0

15 14

SH0

13 12 11 10 9 8 7 6 5

0

HWU62

HWU61

HWU60

HWU59

HPD

HD

HA

TBI

ORGN0

IRGN0

TOSZ

RES

0

RES

1

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

365

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

HPD, [24]

Hierarchical Permission Disables. This affects the hierarchical control bits, APTable, PXNTable,

and UXNTable, except NSTable, in the translation tables pointed to by TTBR0_EL2. The

possible values are:

0

Hierarchical Permissions are enabled.

1

Hierarchical Permissions are disabled.

In this case bit[61] (APTable[0]) and bit[59] (PXNTable)

of the next level descriptor attributes are required

to be to be ignored by the PE, and are no longer

reserved, allowing them to be used by software.

HD, [22]

Hardware management of dirty state in stage 1 translations from EL2. The possible values

are:

0

Stage 1 hardware management of dirty state disabled.

1

Stage 1 hardware management of dirty state enabled, only if the HA

bit is also set to 1.

Implementation of this bit is OPTIONAL, and, if not implemented, this bit is 

RES0

.

HA, [21]

Hardware Access flag update in stage 1 translations from EL2. The possible values are:

0

Stage 1 Access flag update disabled.

1

Stage 1 Access flag update enabled.

PS, [18:16]

Physical address size. The possible values are:

0b000

32 bits, 4GB.

0b001

36 bits, 64GB.

0b010

40 bits, 1TB.

Other values are reserved.

TG0, [15:14]

TTBR0_EL2 granule size. The possible values are:

0b00

4KB.

0b01

64KB.

0b10

16KB.

0b11

Reserved.

All other values are not supported.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

366

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

SH0, [13:12]

Shareability attribute for memory associated with translation table walks using TTBR0_EL2.

The possible values are:

0b00

Non-shareable.

0b01

Reserved.

0b10

Outer shareable.

0b11

Inner shareable.

When HCR_EL2.E2H==1

Figure 3-167: TCR_EL2 bit assignments when HCR_EL2.E2H==1

63

51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35

IPS

34

32

HWU162

HWU161

HWU160

HWU159

HWU062

HWU061

HWU060

HWU059

HPD1

HPD0

HD

HA

TBI1

TBI0

AS

TG1

31 30

SH1

29 28 27 26 25 24 23

A1

22

T1SZ

21

16

TG0

15 14

SH0

13 12 11 10 9 8 7 6

T0SZ

5

0

ORGN1

IRGN1

EPD

ORGN0

IRGN0

EPD

RES

0

HD, [40]

Hardware management of dirty state in stage 1 translations from EL0 and EL1. The possible

values are:

0

Stage 1 hardware management of dirty state disabled.

1

Stage 1 hardware management of dirty state enabled, only if the HA

bit is also set to 1.

Implementation of this bit is OPTIONAL, and, if not implemented, this bit is 

RES0

.

HA, [39]

Hardware Access flag update in stage 1 translations from EL0 and EL1. The possible values

are:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

367

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0

Stage 1 Access flag update disabled.

1

Stage 1 Access flag update enabled.

Implementation of this bit is OPTIONAL, and, if not implemented, this bit is 

RES0

.

TG0, [15:14]

TTBR0_EL1 granule size. The possible values are:

0b00

4KB.

0b10

16KB.

0b01

64KB.

0b11

Reserved.

All other values are not supported.

SH0, [13:12]

Shareability attribute for memory associated with translation table walks using TTBR0_EL1.

The possible values are:

0b00

Non-shareable.

0b01

Reserved.

0b10

Outer shareable.

0b11

Inner shareable.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.2.99 TCR_EL3, Translation Control Register, EL3

The TCR_EL3 controls translation table walks required for stage 1 translation of memory accesses

from EL3 and holds cacheability and shareability information for the accesses.

Bit field descriptions

TCR_EL3 is a 64-bit register, and is part of the Virtual memory control registers functional group.

Figure 3-168: TCR_EL3 bit assignments

31

30

29

28

27

26

25

24

23

22

21

20

19

PS

18

16

TG0

15

14

SH0

13

12 11

10 9

8

7

6

T0SZ

5

0

HWU62

HWU61

HWU60

HWU59

HPD

HD

HA

TBI

ORGN0

IRGN0

RES0
RES1

Reserved

63

32

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

368

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Reserved, [63:32]

Reserved.

HPD, [24]

Hierarchical Permission Disables. This affects the hierarchical control bits, APTable, PXNTable,

and UXNTable, except NSTable, in the translation tables pointed to by TTBR0_EL3. The

possible values are:

0

Hierarchical Permissions are enabled.

1

Hierarchical Permissions are disabled.

In this case bit[61] (APTable[0]) and bit[59] (PXNTable)

of the next level descriptor attributes are required

to be to be ignored by the PE, and are no longer

reserved, allowing them to be used by software.

HD, [22]

Hardware management of dirty state in stage 1 translations from EL3. The possible values

are:

0

Stage 1 hardware management of dirty state disabled.

1

Stage 1 hardware management of dirty state enabled, only if the HA

bit is also set to 1.

Implementation of this bit is OPTIONAL, and, if not implemented, this bit is 

RES0

.

HA, [21]

Hardware Access flag update in stage 1 translations from EL3. The possible values are:

0

Stage 1 Access flag update disabled.

1

Stage 1 Access flag update enabled.

PS, [18:16]

Physical address size. The possible values are:

0b000

32 bits, 4GB.

0b001

36 bits, 64GB.

0b010

40 bits, 1TB.

Other values are reserved.

TG0, [15:14]

TTBR0_EL3 granule size. The possible values are:

0b00

4KB.

0b10

16KB.

0b01

64KB.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

369

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0b11

Reserved.

All other values are not supported.

SH0, [13:12]

Shareability attribute for memory associated with translation table walks using TTBR0_EL3.

The possible values are:

0b00

Non-shareable.

0b01

Reserved.

0b10

Outer shareable.

0b11

Inner shareable.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.2.100 TTBR0_EL1, Translation Table Base Register 0, EL1

The TTBR0_EL1 holds the base address of translation table 0, and information about the memory it

occupies. This is one of the translation tables for the stage 1 translation of memory accesses from

modes other than Hyp mode.

This register is used when HCR_EL2.E2H is 0.

When HCR_EL2.E2H is 1, TTBR0_EL2 is used.

Bit field descriptions

TTBR0_EL1 is a 64-bit register, and is part of the Virtual memory control registers functional group.

Figure 3-169: TTBR0_EL1 bit assignments

ASID

63

48

BADDR

47

2 1 0

CnP

RES

0

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

370

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

ASID, [63:48]

An ASID for the translation table base address. The TCR_EL1.A1 field selects either

TTBR0_EL1.ASID or TTBR1_EL1.ASID.

BADDR, [47:2]

Translation table base address.

RES0, [1]

RES0

Reserved.

CnP, [0]

Common not Private. Supports selective sharing of TLB entries across multiple cores. The

value is:

0

CnP is not supported.

1

CnP is supported.

Configurations

TTBR0_EL1 is architecturally mapped to AArch32 register TTBR0. See 

3.1.85 TTBR0,

Translation Table Base Register 0

 on page 209.

RW fields in this register reset to architecturally 

UNKNOWN

 values.

Any of the fields in this register are permitted to be cached in a TLB.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.2.101 TTBR0_EL2, Translation Table Base Register 0, EL2

The TTBR0_EL2 holds the base address of the translation table for the stage 1 translation of

memory accesses from EL2.

Bit field descriptions

TTBR0_EL2 is a 64-bit register, and is part of the Virtual memory control registers functional group.

Figure 3-170: TTBR0_EL2 bit assignments

BADDR[47:x]

47

48

0

63

1

CnP

RES

0

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

371

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

RES0, [63:48]

RES0

Reserved.

BADDR, [47:1]

Translation table base address, bits[47:x]. Bits [x-1:1] are 

RES0

.

x is based on the value of TCR_EL2.T0SZ, the stage of translation, and the memory

translation granule size.

For instructions on how to calculate it, see the 

Arm

®

 Architecture Reference Manual Arm

®

v8,

for Arm

®

v8-A architecture profile

.

The value of x determines the required alignment of the translation table, that must be

aligned to 2

x

 bytes.

If bits [x-1:1] are not all zero, this is a misaligned translation table base address. Its effects

are 

CONSTRAINED UNPREDICTABLE

, where bits [x-1:1] are treated as if all the bits are zero. The

value read back from those bits is the value that is written.

CnP, [0]

Common not Private. The possible values are:

0

CnP is not supported.

1

CnP is supported.

Configurations

TTBR0_EL2 is architecturally mapped to AArch32 register HTTBR, Hyp Translation Table

Base Register.

When the Virtualization Host Extension is activated, TTBR0_EL2 has the same bit

assignments as TTBR0_EL1.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.102 TTBR0_EL3, Translation Table Base Register 0, EL3

The TTBR0_EL3 holds the base address of the translation table for the stage 1 translation of

memory accesses from EL3.

Bit field descriptions

TTBR0_EL3 is a 64-bit register, and is part of the Virtual memory control registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

372

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-171: TTBR0_EL3 bit assignments

63

48

BADDR

47

2 1 0

CnP

RES

0

RES0, [63:48]

RES0

Reserved.

BADDR, [47:2]

Translation table base address.

RES0, [1]

RES0

Reserved.

CnP, [0]

Common not Private. The possible values are:

0

CnP is not supported.

1

CnP is supported.

Configurations

TTBR0_EL3 is mapped to AArch32 register TTBR0 (S). See 

3.1.85 TTBR0, Translation Table

Base Register 0

 on page 209.

RW fields in this register reset to architecturally 

UNKNOWN

 values.

Any of the fields in this register are permitted to be cached in a TLB.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.2.103 TTBR1_EL1, Translation Table Base Register 1, EL1

The TTBR1_EL1 holds the base address of translation table 1, and information about the memory it

occupies. This is one of the translation tables for the stage 1 translation of memory accesses at EL0

and EL1.

This register is used when HCR_EL2.E2H is 0.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

373

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

When HCR_EL2.E2H is 1, TTBR1_EL2 is used.

Bit field descriptions

TTBR1_EL1 is a 64-bit register, and is part of the Virtual memory control registers functional group.

Figure 3-172: TTBR1_EL1 bit assignments

ASID

63

48

BADDR

47

2 1 0

CnP

RES

0

ASID, [63:48]

An ASID for the translation table base address. The TCR_EL1.A1 field selects either

TTBR0_EL1.ASID or TTBR1_EL1.ASID.

BADDR, [47:2]

Translation table base address.

RES0, [1]

RES0

Reserved.

CnP, [0]

Common not Private. Supports selective sharing of TLB entries across multiple cores. The

possible values are:

0

CnP is not supported.

1

CnP is supported.

Configurations

TTBR1_EL1 is architecturally mapped to AArch32 register TTBR1 (NS). See 

3.1.86 TTBR1,

Translation Table Base Register 1

 on page 211.

RW fields in this register reset to architecturally 

UNKNOWN

 values.

Any of the fields in this register are permitted to be cached in a TLB.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

374

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.104 TTBR1_EL2, Translation Table Base Register 1, EL2

TTBR1_EL2 has the same format and contents as TTBR1_EL1.

See 

3.2.103 TTBR1_EL1, Translation Table Base Register 1, EL1

 on page 373.

3.2.105 VDISR_EL2, Virtual Deferred Interrupt Status Register, EL2

The VDISR_EL2 records that a virtual SError interrupt has been consumed by an 

ESB

 instruction

executed at Non-secure EL1.

Bit field descriptions

VDISR_EL2 is a 64-bit register, and is part of the 

Reliability, Availability, Serviceability

 (RAS) registers

functional group.

There are three formats for this register. The current translation table format determines which

format of the register is used.
• When written at EL1 using short-descriptor format. See 

3.2.105.2 Ananke- VDISR_EL2 with

short-descriptor translation table format

 on page 376.

• When written at EL1 using long-descriptor format. See 

3.2.105.1 Ananke - VDISR_EL2 with

long-descriptor translation table format

 on page 375.

• When written at EL2. See 

3.2.105.3 VDISR_EL2 at EL1 using AArch64

 on page 378.

Configurations

VDISR_EL2 is 

RES0

 at EL3 if EL2 is not implemented.

Present only if all the following are present and is UNDEFINED otherwise.

If the implementation supports AArch32 at EL2, VDISR_EL2 is architecturally mapped to

VDISR. See 

3.1.88 VDISR, Virtual Deferred Interrupt Status Register

 on page 214.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.2.105.1

VDISR_EL2 with long-descriptor translation table format

VDISR_EL2 has a specific format when using the Long-descriptor translation table format.

Bit field descriptions

The following figure shows the VDISR_EL2 bit assignments when EL1 is using the AArch32 Long-

descriptor format.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

375

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-173: VDISR_EL2 bit assignments for the Long-descriptor format

63

32

A

31 30

16

AET

15 14 13

10 9 8

6 5 0

LPAE

STATUS

RES

0

RES0, [63:32]

RES0

Reserved.

A, [31]

Set to 1 when ESB defers a virtual SError interrupt.

RES0, [30:16]

RES0

Reserved.

AET, [15:14]

Contains the value from VDFSR.AET.

RES0, [13:10]

RES0

Reserved.

LPAE, [9]

Format. The value is:

1

Using the Long-descriptor translation table format.

RES0, [8:6]

RES0

Reserved.

STATUS, [5:0]

Fault status code. Set to 

0b010001

 when ESB defers a virtual SError interrupt. The value of

this field is:

0b010001

Asynchronous SError interrupt.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

376

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.105.2

VDISR_EL2 with short-descriptor translation table format

VDISR_EL2 has a specific format when using the Short-descriptor translation table format.

Bit field descriptions

The following figure shows the VDISR_EL2 bit assignments when EL1 is using the AArch32 Short-

descriptor translation table format.

Figure 3-174: VDISR_EL2 bit assignments for Short-descriptor translation table format

63

32

A

31 30

16

AET

15 14 13

11 10 9 8 4

FS[3:0]

3

0

FS[4]

LPAE

RES

0

RES0, [63:32]

RES0

Reserved.

A, [31]

Set to 1 when ESB defers a virtual SError interrupt.

RES0, [30:16]

RES0

Reserved.

AET, [15:14]

Asynchronous Error Type. Describes the state of the PE after taking an asynchronous Data

Abort exception. The value is:

0b01

Uncorrected error, Unrecoverable error

 (UEU).

RES0, [13:11]

RES0

Reserved.

FS[4], [10]

Bit 4 of Fault status code. Set to 

0b10110

 when ESB defers a virtual SError interrupt. The

value of this field is:

0b10110

Asynchronous SError interrupt.

LPAE, [9]

Format. The value is:

0b0

Using the Short-descriptor translation table format.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

377

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

RES0, [8:4]

RES0

Reserved.

FS[3:0], [3:0]

Bits [3:0] of Fault status code. Set to 

0b10110

 when ESB defers a virtual SError interrupt.

The value of this field is:

0b10110

Asynchronous SError interrupt.

3.2.105.3

VDISR_EL2 at EL1 using AArch64

VDISR_EL2 has a specific format when written at EL1.

The following figure shows the VDISR_EL2 bit assignments when written at EL1 using AArch64:

Figure 3-175: VDISR_EL2 at EL1 using AArch64

63

RES

0

31

0

IDS

A

ISS

30

24

25

23

32

RES0, [63:32]

RES0

Reserved.

A, [31]

Set to 1 when ESB defers an asynchronous SError interrupt.

RES0, [30:25]

RES0

Reserved.

IDS, [24]

Contains the value from VSESR_EL2.IDS.

ISS, [23:0]

Contains the value from VSESR_EL2, bits[23:0].

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

378

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.106 VMPIDR_EL2, Virtualization Multiprocessor ID Register, EL2

The VMPIDR_EL2 provides the value of the Virtualization Multiprocessor ID. This is the value

returned by Non-secure EL1 reads of MPIDR.

Bit field descriptions

VMPIDR_EL2 is a 64-bit register, and is part of:
• The Identification registers functional group.
• The Virtualization registers functional group.

Figure 3-176: VMPIDR_EL2 bit assignments

VMPIDR

63

0

VMPIDR, [63:0]

MPIDR value returned by Non-secure EL1 reads of the MPIDR_EL1. The MPIDR description

defines the subdivision of this value. See 

Figure 3-158: MPIDR_EL1 bit assignments

 on page

356.

Configurations

VMPIDR_EL2[31:0] is architecturally mapped to AArch32 register VMPIDR. See 

3.1.89

VMPIDR, Virtualization Multiprocessor ID Register

 on page 217.

If EL2 is not implemented, reads of this register return the value of the MPIDR_EL1, and

writes to the register are ignored.

RW fields in this register reset to architecturally 

UNKNOWN

 values.

VMPIDR_EL2 resets to the value of MPIDR_EL2.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

379

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.107 VPIDR_EL2, Virtualization Processor ID Register, EL2

The VPIDR_EL2 holds the value of the Virtualization Processor ID. This is the value returned by

Non-secure EL1 reads of MIDR_EL1.

Bit field descriptions

VPIDR_EL2 is a 64-bit register, and is part of:
• The Identification registers functional group.
• The Virtualization registers functional group.

Figure 3-177: VPIDR_EL2 bit assignments

31

Reserved

63

32

0

VPIDR

Reserved, [63:32]

Reserved.

VPIDR, [31:0]

MIDR_EL1 value returned by Non-secure EL1 reads of the MIDR_EL1. The MIDR_EL1

description defines the subdivision of this value. See 

Figure 3-157: MIDR_EL1 bit

assignments

 on page 354.

Configurations

VPIDR_EL2 bits [31:0] are architecturally mapped to AArch32 register VPIDR. See 

3.1.90

VPIDR, Virtualization Processor ID Register

 on page 218.

If EL2 is not implemented, reads of this register return the value of the MIDR_EL1, and writes

to the register are ignored.

RW fields in this register reset to architecturally 

UNKNOWN

 values.

VPIDR_EL2 resets to the value of MIDR_EL1.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

380

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.108 VSESR_EL2, Virtual SError Exception Syndrome Register

The VSESR_EL2 provides the syndrome value reported to software on taking a virtual SError

interrupt exception.

Bit field descriptions

VSESR_EL2 is a 64-bit register, and is part of :
• The Exception and fault handling registers functional group.
• The The Virtualization registers functional group.

The register has two bit assignment configurations, that depend on whether the virtual SError

interrupt is taken to EL1 using AArch32 or AArch64:
• If the virtual SError interrupt is taken to EL1 using AArch64, VSESR_EL2 provides the syndrome

value reported in ESR_EL1.

• If the virtual SError interrupt is taken to EL1 using AArch32, VSESR_EL2 provides the syndrome

values reported in DFSR bits

VSESR_EL2 bit assignments when EL1 is using AArch32

Figure 3-178: VSESR_EL2 bit assignments when EL1 is using AArch32

63

16

AET

15 14 13

0

RES

0

RES0, [63:16]

RES0

Reserved.

AET, [15:14]

Asynchronous Error Type. Describes the state of the core after taking the SError interrupt

exception. Software might use the information in the syndrome registers to determine what

recovery might be possible.

RES0, [13:0]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

381

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

VSESR_EL2 bit assignments when EL1 is using AArch64

Figure 3-179: VSESR_EL2 bit assignments when EL1 is using AArch64

63

25 24

ISS

23

0

RES

0

IDS

RES0, [63:25]

RES0

Reserved.

IDS, [24]

Indicates whether the deferred SError interrupt was of an 

IMPLEMENTATION DEFINED

 type. See

ESR_EL1.IDS for a description of the functionality.

On taking a virtual SError interrupt to EL1 using AArch64 due to HCR_EL2.VSE == 1,

ESR_EL1[24] is set to VSESR_EL2.IDS.

ISS, [23:0]

Syndrome information.See ESR_EL1.ISS for a description of the functionality.

On taking a virtual SError interrupt to EL1 using AArch32 due to HCR_EL2.VSE == 1,

ESR_EL1 [23:0] is set to VSESR_EL2.ISS.

Configurations

AArch64 System register VSESR_EL2 [31:0] is architecturally mapped to AArch32 System

register VDFSR. See 

3.1.87 VDFSR, Virtual SError Exception Syndrome Register

 on page

213.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

3.2.109 VTCR_EL2, Virtualization Translation Control Register, EL2

The VTCR_EL2 controls the translation table walks required for the stage 2 translation of memory

accesses from Non-secure EL0 and EL1.

It also holds Cacheability and Shareability information for the accesses.

Bit field descriptions

VTCR_EL2 is a 64-bit register, and is part of:
• The Virtualization registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

382

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

• The Virtual memory control registers functional group.

Figure 3-180: VTCR_EL2 bit assignments

31

0

5

6

7

8

9

10

11

12

13

14

15

16

TG0

ORGN0

IRGN0

18

19

PS

SH0

SL0

T0SZ

30

RES0

RES1

Reserved

63

32

29 28 27 26 25 24 23 22 21 20

HWU62

HWU61

HWU60

HWU59

HD

HA

VS

Bits[28:25] and bits[22:21], architecturally defined, are implemented in the core.

Reserved, [63:32]

 

Reserved.

TG0, [15:14]

TTBR0_EL2 granule size. The possible values are:

00

4KB.

01

64KB.

10

16KB.

11

Reserved.

All other values are not supported.

Configurations

VTCR_EL2 bits [31:0] are architecturally mapped to AArch32 register VTCR. See 

3.1.91

VTCR, Virtualization Translation Control Register

 on page 218.

RW fields in this register reset to architecturally 

UNKNOWN

 values.

Bit fields and details that are not provided in this description are architecturally defined. See

the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

383

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.2.110 VTTBR_EL2, Virtualization Translation Table Base Register, EL2

VTTBR_EL2 holds the base address of the translation table for the stage 2 translation of memory

accesses from Non-secure modes other than Hyp mode.

Bit field descriptions

VTTBR_EL2 is a 64-bit register, and is part of:
• The Virtualization registers functional group.
• The Virtual memory control registers functional group.

Figure 3-181: VTTBR_EL2 bit assignments

63

0

RES

0

1

2

CnP

BADDR

47

48

VMID

CnP, [0]

Common not Private. The reset value is:

0

CnP is not supported.

Configurations

VTTBR_EL2 is architecturally mapped to AArch32 register VTTBR. See 

3.1.92 VTTBR,

Virtualization Translation Table Base Register

 on page 220.

Used in conjunction with the VTCR.

If EL2 is not implemented, this register is 

RES0

 from EL3.

RW fields in this register reset to architecturally 

UNKNOWN

 values.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

3.3 Error System registers

This chapter describes the error registers accessed by both the AArch32 error registers and the

AArch64 error registers.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

384

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.3.1 Error System register summary

This section identifies the ERR0* core error record registers accessed by both the AArch32 and

AArch64 ERX* error registers.

The ERR0* registers are agnostic to the architectural state. For example, this means that for

ERRSELR==0 and ERRSELR_EL1==0, ERXPFGF and ERXPFGF_EL1 will both access ERR0PFGF.

For those registers that are not described in this chapter, see the 

Arm

®

 Architecture Reference

Manual for A-profile architecture

.

The following table describes the architectural error record registers.

Table 3-94: Architectural error System register summary

Register

mnemonic

Size Register name

Access aliases from AArch32 and AArch64

3.1.32 ERXADDR, Selected Error Record Address Register

 on page

139.

3.1.33 ERXADDR2, Selected Error Record Address Register 2

 on

page 139.

ERR0ADDR

64

3.3.2 ERR0ADDR, Error Record Address

Register

 on page 386

3.2.42 ERXADDR_EL1, Selected Error Record Address Register,

EL1

 on page 288

3.1.34 ERXCTLR, Selected Error Record Control Register

 on page

139.

3.1.35 ERXCTLR2, Selected Error Record Control Register 2

 on

page 139.

ERR0CTLR

64

3.3.3 ERR0CTLR, Error Record Control Register

on page 386

3.2.43 ERXCTLR_EL1, Selected Error Record Control Register, EL1

on page 288

3.1.36 ERXFR, Selected Error Record Feature Register

 on page

139.

3.1.37 ERXFR2, Selected Error Record Feature Register 2

 on page

140.

ERR0FR

64

3.3.4 ERR0FR, Error Record Feature Register

 on

page 388

3.2.44 ERXFR_EL1, Selected Error Record Feature Register, EL1

 on

page 288

3.1.38 ERXMISC0, Selected Error Miscellaneous Register 0 

 on

page 140.

3.1.39 ERXMISC1, Selected Error Miscellaneous Register 1

 on page

140.

ERR0MISC0 64

3.3.5 ERR0MISC0, Error Record Miscellaneous

Register 0

 on page 390

3.2.45 ERXMISC0_EL1, Selected Error Record Miscellaneous

Register 0, EL1

 on page 288

3.1.40 ERXMISC2, Selected Error Record Miscellaneous Register 2

on page 140 accesses bits [31:0]

3.1.41 ERXMISC3, Selected Error Record Miscellaneous Register 3

on page 141 accesses bits [63:32]

ERR0MISC1 64

3.3.6 ERR0MISC1, Error Record Miscellaneous

Register 1

 on page 392

3.2.46 ERXMISC1_EL1, Selected Error Record Miscellaneous

Register 1, EL1

 on page 289

ERR0STATUS 32

3.3.10 ERR0STATUS, Error Record Primary

Status Register

 on page 397

3.1.45 ERXSTATUS, Selected Error Record Primary Status Register

on page 144

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

385

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Register

mnemonic

Size Register name

Access aliases from AArch32 and AArch64

3.2.50 ERXSTATUS_EL1, Selected Error Record Primary Status

Register, EL1

 on page 293

The following table describes the error record registers that are 

IMPLEMENTATION DEFINED

.

Table 3-95: IMPLEMENTATION DEFINED error System register summary

Register

mnemonic

Size Register name

Access aliases from AArch32 and AArch64

3.1.42 ERXPFGCDN, Selected Error Pseudo Fault Generation

Count Down Register

 on page 141

ERR0PFGCDN 32

3.3.7 ERR0PFGCDN, Error Pseudo Fault

Generation Count Down Register

 on page 392

3.2.47 ERXPFGCDN_EL1, Selected Error Pseudo Fault

Generation Count Down Register, EL1

 on page 289

3.1.43 ERXPFGCTL, Selected Error Pseudo Fault Generation

Control Register

 on page 142

ERR0PFGCTL 32

3.3.8 ERR0PFGCTL, Error Pseudo Fault Generation

Control Register

 on page 393

3.2.48 ERXPFGCTL_EL1, Selected Error Pseudo Fault

Generation Control Register, EL1

 on page 290

3.1.44 ERXPFGF, Selected Pseudo Fault Generation Feature

Register

 on page 143

ERR0PFGF

32

3.3.9 ERR0PFGF, Error Pseudo Fault Generation

Feature Register

 on page 395

3.2.49 ERXPFGF_EL1, Selected Pseudo Fault Generation

Feature Register, EL1

 on page 292

3.3.2 ERR0ADDR, Error Record Address Register

This register is unused in the Cortex

®

-A55 core and marked as RES0.

Configurations

ERR0ADDR resets to 

0x0000000000000000

.

This register is accessible from the following registers when ERRSELR.SEL==0:
• [31:0]: 

3.1.32 ERXADDR, Selected Error Record Address Register

 on page 139.

• [63:32]: 

3.1.33 ERXADDR2, Selected Error Record Address Register 2

 on page 139.

3.2.42 ERXADDR_EL1, Selected Error Record Address Register, EL1

 on page 288.

3.3.3 ERR0CTLR, Error Record Control Register

The ERR0CTLR contains enable bits for the node that write to this record:

• Enabling error detection and correction.
• Enabling an error recovery interrupt.
• Enabling a fault handling interrupt.
• Enabling error recovery reporting as a read or write error response.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

386

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Bit field descriptions

ERR0CTLR is a 64-bit register and is part of the RAS registers functional group.

Figure 3-182: ERR0CTLR bit assignments

63

9 8 7

4 3 2 1 0

CFI

FI

UI

ED

RES

0

RES0, [63:9]

RES0

Reserved.

CFI, [8]

Fault handling interrupt for corrected errors enable. The fault handling interrupt is generated

when one of the standard CE counters on ERR0MISC0 overflows and the overflow bit is set.

The possible values are:

0

Fault handling interrupt not generated for corrected errors.

1

Fault handling interrupt generated for corrected errors.

The interrupt is generated even if the error status is overwritten because the error record

already records a higher priority error. If the node does not support this control, this bit is

RES0

.

This control applies to both reads and writes.

RES0, [7:4]

RES0

Reserved.

FI, [3]

Fault handling interrupt enable.

The fault handling interrupt is generated for all detected Deferred errors and Uncorrected

errors. The possible values are:

0

Fault handling interrupt disabled.

1

Fault handling interrupt enabled.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

387

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

UI, [2]

Uncorrected error recovery interrupt enable. When enabled, the error recovery interrupt is

generated for all detected Uncorrected errors that are not deferred. The possible values are:

0

Error recovery interrupt disabled.

1

Error recovery interrupt enabled.

Applies to both reads and writes.

RES0, [1]

RES0

Reserved.

ED, [0]

Enable error detection. When disabled, error detection and correction is disabled on reads.

Error correction codes are still written for writes. The possible values are:

0

Error detection and correction disabled.

1

Error detection and correction enabled.

The bit is set to 0 on Cold reset, meaning errors are not detected or corrected

from Cold reset. This allows boot software to initialize the core without

signaling errors. When the node is initialized, software can enable error

detection.

Configurations

ERR0CTLR resets to 

0x0000000000000000

.

This register is accessible from the following registers when ERRSELR.SEL==0:
• [31:0]: 

3.1.34 ERXCTLR, Selected Error Record Control Register

 on page 139

• [63:32]: 

3.1.35 ERXCTLR2, Selected Error Record Control Register 2

 on page 139.

3.2.43 ERXCTLR_EL1, Selected Error Record Control Register, EL1

 on page 288.

3.3.4 ERR0FR, Error Record Feature Register

The ERR0FR defines which of the common architecturally-defined features are implemented and,

of the implemented features, which are software programmable.

Bit field descriptions

ERR0FR is a 64-bit register, and is part of the 

Reliability, Availability, Serviceability

 (RAS) registers

functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

388

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

The register is Read Only.

Figure 3-183: ERR0FR bit assignments

RAZ/WI

63

20

CEO

19 18

DUI

17 16 15

CEC

14

12

CFI

11 10

UE

9 8

FI

7 6

UI

5 4

DE

3 2

ED

1 0

RP

[63:20]

 

Read-as-zero/Write ignore.

CEO, [19:18]

Corrected Error Overwrite. The value is:

0b00

Counts CE if a counter is implemented and keeps the previous error

status. If the counter overflows, or no counter is implemented,

ERR0STATUS.OF is set to 1.

DUI, [17:16]

Error recovery interrupt for deferred errors. The value is:

0b00

The core does not support this feature.

RP, [15]

Repeat counter. The value is:

1

A first repeat counter and a second other counter are implemented.

The repeat counter is the same size as the primary error counter.

CEC, [14:12]

Corrected Error Counter. The value is:

0b010

The node implements an 8-bit standard CE counter in

ERR0MISC0[39:32].

CFI, [11:10]

Fault handling interrupt for corrected errors. The value is:

0b10

The node implements a control for enabling fault handling interrupts

on corrected errors.

UE, [9:8]

In-band uncorrected error reporting. The value is:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

389

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0b01

The node implements in-band uncorrected error reporting, that is

external aborts.

FI, [7:6]

Fault handling interrupt. The value is:

0b10

The node implements a fault handling interrupt and implements

controls for enabling and disabling.

UI, [5:4]

Error recovery interrupt for uncorrected errors. The value is:

0b10

The node implements an error recovery interrupt and implements

controls for enabling and disabling.

DE, [3:2]

Defers Errors enable. The value is:

0b01

Defers Errors always enabled.

ED, [1:0]

Error detection and correction The value is:

0b10

Error detection is controllable.

Configurations

ERR0FR is accessible from the following registers when ERRSELR.SEL==0:
• [31:0]: 

3.1.36 ERXFR, Selected Error Record Feature Register

 on page 139.

• [63:32]: 

3.1.37 ERXFR2, Selected Error Record Feature Register 2

 on page 140.

3.2.44 ERXFR_EL1, Selected Error Record Feature Register, EL1

 on page 288.

3.3.5 ERR0MISC0, Error Record Miscellaneous Register 0

The ERR0MISC0 is an error syndrome register. It contains corrected error counters, information

to identify where the error was detected, and other state information not present in the

corresponding status and address error record registers.

Bit field descriptions

ERR0MISC0 is a 64-bit register, and is part of the 

Reliability, Availability, Serviceability

 (RAS) registers

functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

390

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-184: ERR0MISC0 bit assignments

63

0

31

RES

0

IND

1

3

4

5

6

18

19

27

32

47

48

28

WAY

CECR

LVL

INDX

38

39

40

OFR

46

CECO

OFO

RES0, [63:47]

RES0

Reserved.

OFO, [47]

Other Error Count Overflow.

Set when the other error count field overflows. The fault handling interrupt will be asserted

when this bit is set and the corrected fault handling interrupt is enabled.

CECO, [46:40]

Other Error Count.

This field is incremented on any corrected memory error that does not match the location

(set/way/level/cache/etc) information in this register.

OFR, [39]

Repeat Error Count Overflow.

Set when the repeat error count field overflows. The fault handling interrupt will be asserted

when this bit is set and the corrected fault handling interrupt is enabled.

CECR, [38:32]

Repeat Error Count.

This field is incremented on any corrected memory error that exactly matches the location

(set/way/level/cache/etc) information in this register.

WAY, [31:28]

Indicates the way that contained the error.
• For all RAMs in the core, only bits [31:30] are used.
• For the L1 instruction cache RAMs, this indicates the RAM bank rather than the way.

RES0, [27:19]

RES0

Reserved.

INDX, [18:6]

Indicates the index that contained the error.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

391

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Upper bits of the index are unused depending on the cache size.

RES0, [5:4]

RES0

Reserved.

LVL, [3:1]

Indicates the level that contained the error. The possible values are:

0b000

Level 1.

0b001

Level 2.

IND, [0]

Indicates the type of cache that contained the error. The possible values are:

0

L1 data cache, unified L2 cache, or TLB.

1

L1 instruction cache.

Configurations

ERR0MISC0 resets to 

0x0000000000000000

.

This register is accessible from the following registers when ERRSELR.SEL==0:
• [31:0]: 

3.1.38 ERXMISC0, Selected Error Miscellaneous Register 0 

 on page 140.

• [63:32]: 

3.1.39 ERXMISC1, Selected Error Miscellaneous Register 1

 on page 140.

3.2.45 ERXMISC0_EL1, Selected Error Record Miscellaneous Register 0, EL1

 on page

288.

3.3.6 ERR0MISC1, Error Record Miscellaneous Register 1

This register is unused in the Cortex

®

-A55 core and marked as 

RES0

.

Configurations

ERR0MISC1 is accessible from the following registers when ERRSELR.SEL==0:
• [31:0]: 

3.1.40 ERXMISC2, Selected Error Record Miscellaneous Register 2

 on page 140.

• [63:32]: 

3.1.41 ERXMISC3, Selected Error Record Miscellaneous Register 3

 on page 141.

3.2.46 ERXMISC1_EL1, Selected Error Record Miscellaneous Register 1, EL1

 on page 289.

3.3.7 ERR0PFGCDN, Error Pseudo Fault Generation Count Down Register

ERR0PFGCDN is the Cortex

®

-A55 node register that generates one of the errors that are enabled

in the corresponding ERR0PFGCTL register.

Bit field descriptions

ERR0PFGCDN is a 32-bit read/write register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

392

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-185: ERR0PFGCDN bit assignments

31

0

CDN

CDN, [31:0]

Count Down value. The reset value of the Error Generation Counter is used for the

countdown.

Configurations

There are no configuration options.

ERR0PFGCDN resets to 

0x00000000

.

ERR0PFGCDN is accessible from the following registers when ERRSELR.SEL==0:

3.1.42 ERXPFGCDN, Selected Error Pseudo Fault Generation Count Down Register

 on

page 141.

3.2.47 ERXPFGCDN_EL1, Selected Error Pseudo Fault Generation Count Down Register,

EL1

 on page 289.

3.3.8 ERR0PFGCTL, Error Pseudo Fault Generation Control Register

The ERR0PFGCTL is the Cortex

®

-A55 node register that enables controlled fault generation.

Bit field descriptions

ERR0PFGCTL is a 32-bit read/write register.

Figure 3-186: ERR0PFGCTL bit assignments

31 30

6 5 4 3 2

0

DE

R

UER

CE

7

UC

1

CDNEN

29

RES

0

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

393

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

CDNEN, [31]

Count down enable. This bit controls transfers from the value held in the ERR0PFGCDN into

the Error Generation Counter and enables this counter to start counting down. The possible

values are:

0

The Error Generation Counter is disabled.

1

The value held in the ERR0PFGCDN register is transferred into the

Error Generation Counter. The Error Generation Counter counts

down.

R, [30]

Restartable bit. When it reaches 0, the Error Generation Counter restarts from the

ERR0PFGCDN value or stops. The possible values are:

0

When it reaches 0, the counter stops.

1

When it reaches 0, the counter reloads the value stored in

ERR0PFGCDN and starts counting down again.

RES0, [29:7]

RES0

Reserved.

CE, [6]

Corrected error generation enable. The possible values are:

0

No corrected error is generated.

1

A corrected error is generated on the next instruction that could

trigger such an error.

DE, [5]

Deferred Error generation enable. The possible values are:

0

No deferred error is generated.

1

A deferred error is generated on the next instruction that could

trigger such an error.

RES0, [4]

RES0

Reserved.

UER, [3]

Signaled or Recoverable Error generation enable. This bit controls whether a signaled or a

recoverable error might be generated. The possible values are:

0

No signaled or recoverable error will be generated.

1

A signaled or a recoverable error is generated on the next instruction

that could trigger such an error.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

394

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

RES0, [2]

RES0

Reserved.

UC, [1]

Uncontainable error generation enable. The possible values are:

0

No uncontainable error is generated.

1

An uncontainable error is generated on the next instruction that

could trigger such an error.

[0]

Reserved, 

RES0

.

Configurations

There are no configuration notes.

ERR0PFGCTL resets to 

0x00000000

.

ERR0PFGCTL is accessible from the following registers when ERRSELR.SEL==0:

3.1.43 ERXPFGCTL, Selected Error Pseudo Fault Generation Control Register

 on page

142.

3.2.48 ERXPFGCTL_EL1, Selected Error Pseudo Fault Generation Control Register, EL1

on page 290.

3.3.9 ERR0PFGF, Error Pseudo Fault Generation Feature Register

The ERR0PFGF is the Cortex

®

-A55 node register that defines which fault generation features are

implemented.

Bit field descriptions

ERR0PFGF is a 32-bit read-only register.

Figure 3-187: ERR0PFGF bit assignments

31

0

RES

0

1

30 29

2

3

4

5

6

7

R
PFG

CE
DE

UEO

UER
UEU

UC

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

395

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

PFG, [31]

Pseudo Fault Generation. The possible values are:

0

The node does not support fault injection.

1

The node implements a fault injection mechanism.

R, [30]

Restartable bit. When it reaches zero, the Error Generation Counter restarts from the

ERR0PFGCDN value or stops. The possible values are:

0

The node does not support this feature.

1

This feature is controllable.

[29:7]

 

Reserved, 

RES0

.

CE, [6]

Corrected Error generation. The possible values are:

0

The node does not support this feature.

1

This feature is controllable.

DE, [5]

Deferred Error generation. The possible values are:

0

The node does not support this feature.

1

This feature is controllable.

UEO, [4]

Latent or Restartable Error generation. The possible values are:

0

The node does not support this feature.

UER, [3]

Signaled or Recoverable Error generation. The possible values are:

0

The node does not support this feature.

1

This feature is controllable.

UEU, [2]

Unrecoverable Error generation. The possible values are:

0

The node does not support this feature.

UC, [1]

Uncontainable Error generation. The possible values are:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

396

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0

The node does not support this feature.

1

This feature is controllable.

[0]

 

Reserved, 

RES0

.

Configurations

There are no configuration notes.

ERR0PFGF resets to 

0xC000006A

.

ERR0PFGF is accessible from the following registers when ERRSELR.SEL==0:

3.1.44 ERXPFGF, Selected Pseudo Fault Generation Feature Register

 on page 143.

3.2.49 ERXPFGF_EL1, Selected Pseudo Fault Generation Feature Register, EL1

 on page

292.

3.3.10 ERR0STATUS, Error Record Primary Status Register

The ERR0STATUS contains information about the error record:

• Whether any error has been detected.
• Whether any detected error was not corrected and returned to a requester.
• Whether any detected error was not corrected and deferred.
• Whether a second error of the same type was detected before software handled the first error.
• Whether any error has been reported.
• Whether the other error record registers contain valid information.

Bit field descriptions

ERR0STATUS is a 32-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

397

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-188: ERR0STATUS bit assignments

SERR

CE

31 30

0

7

29

RES

0

28 27 26 25 24 23 22 21 20 19

8

UET
PN
DE

AV

V

UE
ER
OF

MV

16 15

IERR

AV, [31]

Address Valid. The values is:

0

ERR0ADDR is not valid.

V, [30]

Status Register valid. The possible values are:

0

ERR0STATUS is not valid.

1

ERR0STATUS is valid. At least one error has been recorded.

UE, [29]

Uncorrected error. The possible values are:

0

No error that could not be corrected or deferred has been detected.

1

At least one error that could not be corrected or deferred has been

detected. If error recovery interrupts are enabled, then the interrupt

signal is asserted until this bit is cleared.

ER, [28]

Error reported. The possible values are:

0

No external abort has been reported.

1

The node has reported an external abort to the requester that is in

access or making a transaction.

OF, [27]

Overflow. The possible values are:

0

• If UE == 1, then no error status for an Uncorrected error has

been discarded.

• If UE == 0 and DE == 1, then no error status for a Deferred error

has been discarded.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

398

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

• If UE == 0, DE == 0, and CE !== 

0b00

, then:

◦ If a Corrected error counter is implemented, it has not

overflowed.

◦ If no Corrected error counter is implemented, no error status

for a Corrected error has been discarded.

1

More than one error has occurred and so details of the other error

have been discarded.

MV, [26]

Miscellaneous Registers Valid. The possible values are:

0

ERR0MISC0 and ERR0MISC1 are not valid.

1

This bit indicates that ERR0MISC0 contains additional information

about any error recorded by this record.

CE, [25:24]

Corrected error. The possible values are:

0b00

No corrected errors recorded.

0b10

At least one corrected error recorded.

DE, [23]

Deferred error. The possible values are:

0

No errors were deferred.

1

At least one error was not corrected and deferred by poisoning.

PN, [22]

Poison. The value is:

0

The Cortex

®

-A55 core cannot distinguish a poisoned value from a

corrupted value.

UET, [21:20]

Uncorrected Error Type. The value is:

0b00

Uncontainable.

RES0, [19:16]

RES0

Reserved.

IERR, [15:8]

IMPLEMENTATION DEFINED

 error code. The possible values are:

0x0

No error, or error on other RAMs.

0x1

Error on L1 dirty RAM.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

399

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

SERR, [7:0]

Primary error code. The possible values are:

0x0

No error.

0x2

ECC error from internal data buffer.

0x6

ECC error on cache data RAM.

0x7

ECC error on cache tag or dirty RAM.

0x8

Parity error on TLB data RAM.

0x9

Parity error on TLB tag RAM.

0x15

Deferred error from subordinate not supported at the consumer. For

example, poisoned data received from a subordinate by a requester

that cannot defer the error further.

Configurations

There are no configuration notes.

ERR0STATUS resets to 

0x00000000

.

ERR0STATUS is accessible from the following registers when ERRSELR.SEL==0:

3.1.45 ERXSTATUS, Selected Error Record Primary Status Register

 on page 144.

3.2.50 ERXSTATUS_EL1, Selected Error Record Primary Status Register, EL1

 on page

293.

3.4 GIC registers

This chapter describes the GIC registers.

3.4.1 CPU interface registers

Each CPU interface block provides the interface for the Cortex

®

-A55 core that interfaces with a

GIC distributor within the system.

The Cortex

®

-A55 core only supports System register access to the GIC CPU interface registers.

The following table lists the three types of GIC CPU interface System registers supported in the

Cortex

®

-A55 core.

Table 3-96: GIC CPU interface System register types supported in the Cortex

®

-A55 core.

Register prefix

Register type

ICC

Physical GIC CPU interface System registers.

ICV

Virtual GIC CPU interface System registers.

ICH

Virtual interface control System registers.

Access to virtual GIC CPU interface System registers is only possible at Non-secure EL1.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

400

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Access to ICC registers or the equivalent ICV registers is determined by HCR_EL2. See 

3.2.55

HCR_EL2, Hypervisor Configuration Register, EL2

 on page 298.

For more information on the CPU interface, see the 

 Arm

®

 Generic Interrupt Controller Architecture

Specification, GIC architecture version 3 and version 4 

.

3.4.2 AArch32 physical GIC CPU interface system register summary

The following table lists the AArch32 physical GIC CPU interface system registers that have

IMPLEMENTATION DEFINED

 bits.

See the 

 Arm

®

 Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and

version 4 

 for more information and a complete list of AArch32 physical GIC CPU interface system

registers.

Table 3-97: AArch32 physical GIC CPU interface system register summary

Name

Op1 CRn CRm Op2 Type Description

ICC_AP0R0 0

12 8

4

RW

3.4.3 ICC_AP0R0, Interrupt Controller Active Priorities Group 0 Register 0

 on page 401

ICC_AP1R0 0

12 9

0

RW

3.4.4 ICC_AP1R0, Interrupt Controller Active Priorities Group 1 Register 0

 on page 402

ICC_BPR0

0

12 8

3

RW

3.4.5 ICC_BPR0, Interrupt Controller Binary Point Register 0

 on page 402

ICC_BPR1

0

12 12

3

RW

3.4.6 ICC_BPR1, Interrupt Controller Binary Point Register 1

 on page 403

ICC_CTLR

0

12 12

4

RW

3.4.7 ICC_CTLR, Interrupt Controller Control Register

 on page 404

ICC_HSRE

4

12 9

5

RW

3.4.8 ICC_HSRE, Interrupt Controller Hyp System Register Enable Register

 on page 406

ICC_MCTLR 6

12 12

4

RW

3.4.9 ICC_MCTLR, Interrupt Controller Monitor Control Register

 on page 408

ICC_MSRE 6

12 12

5

RW

3.4.10 ICC_MSRE, Interrupt Controller Monitor System Register Enable Register

 on page

411

ICC_SRE

0

12 12

5

RW

3.4.11 ICC_SRE, Interrupt Controller System Register Enable Register

 on page 412

3.4.3 ICC_AP0R0, Interrupt Controller Active Priorities Group 0 Register 0

The ICC_AP0R0 provides information about Group 0 active priorities.

Bit field descriptions

This register is a 32-bit register and is part of:
• The GIC system registers functional group.
• The GIC control registers functional group.

The core implements 5 bits of priority with 32 priority levels, corresponding to the 32 bits [31:0] of

the register. The possible values for each bit are:

0x00000000

No interrupt active. This is the reset value.

0x00000001

Interrupt active for priority 

0x0

.

0x00000002

Interrupt active for priority 

0x8

.

 

...

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

401

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0x80000000

Interrupt active for priority 

0xF8

.

Configurations

There is one instance of this register that is used in both Secure and Non-secure states.

AArch32 System register ICC_AP0R0 is architecturally mapped to AArch64 System register

ICC_AP0R0_EL1.

Details not provided in this description are architecturally defined. See the 

 Arm

®

 Generic Interrupt

Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.4 ICC_AP1R0, Interrupt Controller Active Priorities Group 1 Register 0

The ICC_AP1R0 provides information about Group 1 active priorities.

Bit field descriptions

This register is a 32-bit register and is part of:
• The GIC system registers functional group.
• The GIC control registers functional group.

The core implements 5 bits of priority with 32 priority levels, corresponding to the 32 bits [31:0] of

the register. The possible values for each bit are:

0x00000000

No interrupt active. This is the reset value.

0x00000001

Interrupt active for priority 

0x0

.

0x00000002

Interrupt active for priority 

0x8

.

 

...

0x80000000

Interrupt active for priority 

0xF8

.

Configurations

There is one instance of this register that is used in both Secure and Non-secure states.

AArch32 System register ICC_AP1R0 is architecturally mapped to AArch64 System register

ICC_AP1R0_EL1.

Details not provided in this description are architecturally defined. See the 

Arm

®

 Architecture

Reference Manual for A-profile architecture

.

3.4.5 ICC_BPR0, Interrupt Controller Binary Point Register 0

ICC_BPR0 defines the point at which the priority value fields split into two parts, the group priority

field and the subpriority field. The group priority field determines Group 0 interrupt preemption.

Bit field descriptions

ICC_BPR0 is a 32-bit register and is part of:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

402

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

• The GIC system registers functional group.
• The GIC control registers functional group.

Figure 3-189: ICC_BPR0 bit assignments

31

0

2

3

BinaryPoint

RES

0

RES0, [31:3]

 

Reserved, 

RES0

.

BinaryPoint, [2:0]

The value of this field controls how the 8-bit interrupt priority field is split into a group

priority field, that determines interrupt preemption, and a subpriority field. The minimum

value implemented is:

0x2

Configurations

AArch32 System register ICC_BPR0 is architecturally mapped to AArch64 System register

ICC_BPR0_EL1.

Bit fields and details not provided in this description are architecturally defined. See the 

 Arm

®

Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.6 ICC_BPR1, Interrupt Controller Binary Point Register 1

ICC_BPR1 defines the point at which the priority value fields split into two parts, the group priority

field and the subpriority field. The group priority field determines Group 1 interrupt preemption.

Bit field descriptions

ICC_BPR1 is a 32-bit register and is part of:
• The GIC system registers functional group.
• The GIC control registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

403

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-190: ICC_BPR1 bit assignments

31

0

2

3

BinaryPoint

RES

0

RES0, [31:3]

 

Reserved, 

RES0

.

BinaryPoint, [2:0]

The value of this field controls how the 8-bit interrupt priority field is split into a group

priority field, that determines interrupt preemption, and a subpriority field.

The minimum value implemented of ICC_BPR1_EL1 Secure register is 

0x2

.

The minimum value implemented of ICC_BPR1_EL1 Non-secure register is 

0x3

.

Configurations

AArch32 System register ICC_BPR1 is architecturally mapped to AArch64 System register

ICC_BPR1_EL1.

Bit fields and details not provided in this description are architecturally defined. See the 

 Arm

®

Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.7 ICC_CTLR, Interrupt Controller Control Register

ICC_CTLR controls aspects of the behavior of the GIC CPU interface and provides information

about the features implemented.

Bit field descriptions

ICC_CTLR is a 32-bit register and is part of:
• The GIC system registers functional group.
• The GIC control registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

404

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-191: ICC_CTLR bit assignments

31

0

1

2

5

6

7

8

10

11

13

14

15

16

CBPR
EOImode
PMHE

PRIbits

IDbits

SEIS
A3V

RES

0

RES0, [31:16]

 

Reserved, 

RES0

.

A3V, [15]

Affinity 3 Valid. The value is:

0x1

The CPU interface logic supports non-zero values of Affinity 3 in SGI

generation System registers.

SEIS, [14]

SEI Support.The value is:

0x0

The CPU interface logic does not support local generation of SEIs.

IDbits, [13:11]

Identifier bits. The value is:

0x0

The number of physical interrupt identifier bits supported is 16 bits.

This field is an alias of ICC_CTLR_EL3.IDbits.

PRIbits, [10:8]

Priority bits. The value is:

0x4

The core support 32 levels of physical priority with 5 priority bits.

RES0, [7]

 

Reserved, 

RES0

.

PMHE, [6]

Priority Mask Hint Enable. This bit is an alias of ICC_CTLR_EL3.PMHE. The possible values

are:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

405

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0

Disables use of ICC_PMR as a hint for interrupt distribution.

1

Enables use of ICC_PMR as a hint for interrupt distribution.

RES0, [5:2]

 

Reserved, 

RES0

.

EOImode, [1]

End of interrupt mode for the current security state. The possible values are:

0

ICC_EOIR0 and ICC_EOIR1 provide both priority drop and interrupt

deactivation functionality. Accesses to ICC_DIR are 

UNPREDICTABLE

.

1

ICC_EOIR0 and ICC_EOIR1 provide priority drop functionality only.

ICC_DIR provides interrupt deactivation functionality.

If EL3 is using AArch32, this bit is an alias of ICC_MCTLR.EOImode_EL1 {S, NS}.

If EL3 is using AArch64, this bit is an alias of ICC_CTLR_EL3.EOImode_EL1 {S, NS}.

CBPR, [0]

Common Binary Point Register. Control whether the same register is used for interrupt pre-

emption of both Group 0 and Group 1 interrupt. The possible values are:

0

ICC_BPR0 determines the preemption group for Group 0 interrupts.

ICC_BPR1 determines the preemption group for Group 1 interrupts.

1

ICC_BPR0 determines the preemption group for Group 0 and Group

1 interrupts.

If EL3 is using AArch32, this bit is an alias of ICC_MCTLR.CBPR_EL1 {N, NS}.

If EL3 is using AArch64, this bit is an alias of ICC_CTLR_EL3.CBPR_EL1 {S, NS}.

If GICD_CTLR.DS == 0, this bit is read-only.

If GICD_CTLR.DS == 0, this bit is read/write.

Configurations

AArch32 System register ICC_CTLR (S) is architecturally mapped to AArch64 System register

ICC_CTLR_EL1 (S).

AArch32 System register ICC_CTLR (NS) is architecturally mapped to AArch64 System

register ICC_CTLR_EL1(NS).

Bit fields and details not provided in this description are architecturally defined. See the 

 Arm

®

Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

406

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.4.8 ICC_HSRE, Interrupt Controller Hyp System Register Enable Register

ICC_HSRE controls whether the System register interface or the memory-mapped interface to the

GIC CPU interface is used for EL2.

Bit field descriptions

ICC_HSRE is a 32-bit register and is part of:
• The GIC system registers functional group.
• The Virtualization registers functional group.
• The GIC control registers functional group.

Figure 3-192: ICC_HSRE bit assignments

31

0

1

2

3

SRE
DFB
DIB

RES

0

4

Enable

RES0, [31:4]

 

Reserved, 

RES0

.

Enable, [3]

Enables lower Exception level access to ICC_SRE. The value is:

0x1

Non-secure EL1 accesses to ICC_SRE do not trap to EL2.

This bit is RAO/WI.

DIB, [2]

Disable IRQ bypass. The possible values are:

0x0

IRQ bypass enabled.

0x1

IRQ bypass disabled.

This bit is an alias of ICC_MSRE.DIB.

DFB, [1]

Disable FIQ bypass. The possible values are:

0x0

FIQ bypass enabled.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

407

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0x1

FIQ bypass disabled.

This bit is an alias of ICC_MSRE.DFB.

SRE, [0]

System Register Enable. The value is:

0x1

The System register interface for the current Security state is

enabled.

This bit is RAO/WI. The core only supports a system register interface to the GIC CPU

interface.

Configurations

AArch32 System register ICC_HSRE (S) is architecturally mapped to AArch64 System register

ICC_SRE_EL2 (S).

AArch32 System register ICC_HSRE (NS) is architecturally mapped to AArch64 System

register ICC_SRE_EL2 (NS).

Bit fields and details not provided in this description are architecturally defined. See the 

 Arm

®

Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.9 ICC_MCTLR, Interrupt Controller Monitor Control Register

ICC_MCTLR controls aspects of the behavior of the GIC CPU interface and provides information

about the features implemented.

Bit field descriptions

ICC_MCTLR is a 32-bit register and is part of:
• The GIC system registers functional group.
• The Security registers functional group.
• The GIC control registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

408

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-193: ICC_MCTLR bit assignments

31

0

1

2

5

6

7

8

10

11

13

14

15

16

CBPR_EL1S
CBPR_EL1NS

PMHE

PRIbits

IDbits

SEIS
A3V

RES

0

3

4

17

18

nDS

EOImode_EL3
EOImode_EL1S
EOImode_EL1NS
RM

RES0, [31:18]

 

Reserved, 

RES0

.

nDS, [17]

Disable Security not supported. Read-only and writes are ignored. The value is:

0x1

The CPU interface logic does not support disabling of security, and

requires that security is not disabled.

RES0, [16]

 

Reserved, 

RES0

.

A3V, [15]

Affinity 3 Valid. The value is:

0x1

The CPU interface logic supports non-zero values of the Aff3 field in

SGI generation System registers.

SEIS, [14]

SEI Support. The value is:

0x0

The CPU interface logic does not support generation of SEIs.

IDbits, [13:11]

Identifier bits. The value is:

0x0

The number of physical interrupt identifier bits supported is 16 bits.

This field is an alias of ICC_CTLR_EL3.IDbits.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

409

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

PRIbits, [10:8]

Priority bits. The value is:

0x4

The core support 32 levels of physical priority with 5 priority bits.

RES0, [7]

 

Reserved, 

RES0

.

PMHE, [6]

 

Priority Mask Hint Enable.

RM, [5]

SBZ. The equivalent bit in AArch64 is the Routing Modifier bit. This feature is not supported

when EL3 is using AArch32. The value is:

0x0

EOImode_EL1NS, [4]

EOI mode for interrupts handled at Non-secure EL1 and EL2. Controls whether a write to an

End of Interrupt register also deactivates the interrupt.

EOI mode for interrupts handled at Non-secure EL1 and EL2.

EOImode_EL1S, [3]

EOI mode for interrupts handled at Secure EL1. Controls whether a write to an End of

Interrupt register also deactivates the interrupt.

EOI mode for interrupts handled at Secure EL1

EOImode_EL3, [2]

EOI mode for interrupts handled at EL3. Controls whether a write to an End of Interrupt

register also deactivates the interrupt.

EOI mode for interrupts handled at EL3.

CBPR_EL1NS, [1]

Common Binary Point Register, EL1 Non-secure.

Control whether the same register is used for interrupt pre-emption of both Group 0 and

Group 1 Non-secure interrupts at EL1 and EL2.

CBPR_EL1S, [0]

Common Binary Point Register, EL1 Secure.

Control whether the same register is used for interrupt pre-emption of both Group 0 and

Group 1 Secure interrupt at EL1.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

410

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Configurations

This register is only accessible in Secure state.

AArch32 System register ICC_MCTLR can be mapped to AArch64 System register

ICC_CTLR_EL3.

Bit fields and details not provided in this description are architecturally defined. See the 

 Arm

®

Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.10 ICC_MSRE, Interrupt Controller Monitor System Register Enable

Register

ICC_MSRE controls whether the System register interface or the memory-mapped interface to the

GIC CPU interface is used for EL3.

Bit field descriptions

ICC_MSRE is a 32-bit register and is part of:
• The GIC system registers functional group.
• The Security registers functional group.
• The GIC control registers functional group.

Figure 3-194: ICC_MSRE bit assignments

31

0

1

2

3

SRE
DFB
DIB

RES

0

4

Enable

RES0, [31:4]

 

Reserved, 

RES0

.

Enable, [3]

Enables lower Exception level access to ICC_SRE. The value is:

0x1

Non-secure EL1 accesses to ICC_SRE do not trap to EL2.

This bit is RAO/WI.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

411

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

DIB, [2]

Disable IRQ bypass. The possible values are:

0x0

IRQ bypass enabled.

0x1

IRQ bypass disabled.

DFB, [1]

Disable FIQ bypass. The possible values are:

0x0

FIQ bypass enabled.

0x1

FIQ bypass disabled.

SRE, [0]

System Register Enable. The value is:

0x1

The System register interface for the current Security state is

enabled.

This bit is RAO/WI. The core only supports a system register interface to the GIC CPU

interface.

Configurations

AArch32 System register ICC_MSRE can be mapped to AArch64 System register

ICC_SRE_EL3.

Bit fields and details not provided in this description are architecturally defined. See the 

 Arm

®

Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.11 ICC_SRE, Interrupt Controller System Register Enable Register

ICC_SRE controls whether the System register interface or the memory-mapped interface to the

GIC CPU interface is used for EL0 and EL1.

Bit field descriptions

ICC_SRE is a 32-bit register and is part of:
• The GIC system registers functional group.
• The GIC control registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

412

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-195: ICC_SRE bit assignments

31

0

1

2

3

SRE
DFB
DIB

RES

0

RES0, [31:3]

 

Reserved, 

RES0

.

DIB, [2]

Disable IRQ bypass. The possible values are:

0x0

IRQ bypass enabled.

0x1

IRQ bypass disabled.

This bit is an alias of ICC_MSRE.DIB.

DFB, [1]

Disable FIQ bypass. The possible values are:

0x0

FIQ bypass enabled.

0x1

FIQ bypass disabled.

This bit is an alias of ICC_MSRE.DFB.

SRE, [0]

System Register Enable. The value is:

0x1

The System register interface for the current Security state is

enabled.

This bit is RAO/WI. The core only supports a system register interface to the GIC CPU

interface.

Configurations

AArch32 System register ICC_SRE (S) is architecturally mapped to AArch64 System register

ICC_SRE_EL1 (S).

AArch32 System register ICC_SRE (NS) is architecturally mapped to AArch64 System register

ICC_SRE_EL1(NS).

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

413

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Bit fields and details not provided in this description are architecturally defined. See the 

 Arm

®

Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.12 AArch32 virtual GIC CPU interface register summary

The following table describes the AArch32 virtual GIC CPU interface system register that has

IMPLEMENTATION DEFINED

 bits.

See the 

 Arm

®

 Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and

version 4 

 for more information and a complete list of AArch32 virtual GIC CPU interface system

registers.

Table 3-98: AArch32 virtual GIC CPU interface register summary

Name

Op1 CRn CRm Op2 Type Description

ICV_AP0R0 0

12 8

4

RW

3.4.13 ICV_AP0R0, Interrupt Controller Virtual Active Priorities Group 0 Register 0

 on page

414

ICV_AP1R0 0

12 9

0

RW

3.4.14 ICV_AP1R0, Interrupt Controller Virtual Active Priorities Group 1 Register 0

 on page

415

ICV_BPR0 0

12 8

3

RW

3.4.15 ICV_BPR0, Interrupt Controller Virtual Binary Point Register 0

 on page 415

ICV_BPR1 0

12 12

3

RW

3.4.16 ICV_BPR1, Interrupt Controller Virtual Binary Point Register 1

 on page 416

ICV_CTLR 0

12 12

4

RW

3.4.17 ICV_CTLR, Interrupt Controller Virtual Control Register

 on page 417

3.4.13 ICV_AP0R0, Interrupt Controller Virtual Active Priorities Group 0

Register 0

The ICV_AP0R0 register provides information about virtual Group 0 active priorities.

Bit descriptions

This register is a 32-bit register and is part of:
• The GIC system registers functional group.
• The GIC control registers functional group.

The core implements 5 bits of priority with 32 priority levels, corresponding to the 32 bits [31:0] of

the register. The possible values for each bit are:

0x00000000

No interrupt active. This is the reset value.

0x00000001

Interrupt active for priority 

0x0

.

0x00000002

Interrupt active for priority 

0x8

.

 

...

0x80000000

Interrupt active for priority 

0xF8

.

Configurations

AArch32 System register ICV_AP0R0 is architecturally mapped to AArch64 System register

ICV_AP0R0_EL1.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

414

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Details not provided in this description are architecturally defined. See the 

 Arm

®

 Generic Interrupt

Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.14 ICV_AP1R0, Interrupt Controller Virtual Active Priorities Group 1

Register 0

The ICV_AP1R0 register provides information about virtual Group 0 active priorities.

Bit descriptions

This register is a 32-bit register and is part of:
• The GIC system registers functional group.
• The GIC control registers functional group.

The core implements 5 bits of priority with 32 priority levels, corresponding to the 32 bits [31:0] of

the register. The possible values for each bit are:

0x00000000

No interrupt active. This is the reset value.

0x00000001

Interrupt active for priority 

0x0

.

0x00000002

Interrupt active for priority 

0x8

.

 

...

0x80000000

Interrupt active for priority 

0xF8

.

Configurations

AArch32 System register ICV_AP1R0 is architecturally mapped to AArch64 System register

ICV_AP1R0_EL1.

Details not provided in this description are architecturally defined. See the 

 Arm

®

 Generic Interrupt

Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.15 ICV_BPR0, Interrupt Controller Virtual Binary Point Register 0

ICV_BPR0 defines the point at which the priority value fields split into two parts, the group

priority field and the subpriority field. The group priority field determines virtual Group 0 interrupt

preemption.

Bit field descriptions

ICC_BPR0 is a 32-bit register and is part of:
• The GIC system registers functional group.
• The GIC virtual interface control registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

415

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-196: ICV_BPR0 bit assignments

31

0

2

3

BinaryPoint

RES

0

RES0, [31:3]

 

Reserved, 

RES0

.

BinaryPoint, [2:0]

The value of this field controls how the 8-bit interrupt priority field is split into a group

priority field, that determines interrupt preemption, and a subpriority field. The minimum

value implemented is:

0x2

Configurations

AArch32 System register ICV_BPR0 is architecturally mapped to AArch64 System register

ICV_BPR0_EL1.

Bit fields and details not provided in this description are architecturally defined. See the 

 Arm

®

Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.16 ICV_BPR1, Interrupt Controller Virtual Binary Point Register 1

ICV_BPR1 defines the point at which the priority value fields split into two parts, the group

priority field and the subpriority field. The group priority field determines virtual Group 1 interrupt

preemption.

Bit field descriptions

ICC_BPR1 is a 32-bit register and is part of:
• The GIC system registers functional group.
• The GIC virtual interface control registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

416

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-197: ICV_BPR1 bit assignments

31

0

2

3

BinaryPoint

RES

0

RES0, [31:3]

 

Reserved, 

RES0

.

BinaryPoint, [2:0]

The value of this field controls how the 8-bit interrupt priority field is split into a group

priority field, that determines interrupt preemption, and a subpriority field.

The minimum value implemented of ICV_BPR1_EL1 Secure register is 

0x2

.

The minimum value implemented of ICV_BPR1_EL1 Non-secure register is 

0x3

.

Configurations

AArch32 System register ICV_BPR1 is architecturally mapped to AArch64 System register

ICV_BPR1_EL1.

Bit fields and details not provided in this description are architecturally defined. See the 

 Arm

®

Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.17 ICV_CTLR, Interrupt Controller Virtual Control Register

ICV_CTLR controls aspects of the behavior of the GIC virtual CPU interface and provides

information about the features implemented.

Bit field descriptions

ICV_CTLR is a 32-bit register and is part of:
• The GIC system registers functional group.
• The GIC virtual interface control registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

417

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-198: ICV_CTLR bit assignments

31

0

16

RES

0

PRIbits

VCBPR
VEOImode

15 14 13

10

8 7

2 1

11

IDbits

A3V

SEIS

RES0, [31:16]

 

Reserved, 

RES0

.

A3V, [15]

Affinity 3 Valid. The value is:

0x1

The virtual CPU interface logic supports non-zero values of Affinity 3

in SGI generation System registers.

SEIS, [14]

SEI Support. The value is:

0x0

The virtual CPU interface logic does not support local generation of

SEIs.

IDbits, [13:11]

Identifier bits. The value is:

0x0

The number of physical interrupt identifier bits supported is 16 bits.

PRIbits, [10:8]

Priority bits. The value is:

0x4

Support 32 levels of physical priority (5 priority bits).

RES0, [7:2]

 

Reserved, 

RES0

.

VEOImode, [1]

Virtual EOI mode. The possible values are:

0x0

ICV_EOIR0 and ICV_EOIR1 provide both priority drop and interrupt

deactivation functionality. Accesses to ICV_DIR are 

UNPREDICTABLE

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

418

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0x1

ICV_EOIR0 and ICV_EOIR1 provide priority drop functionality only.

ICV_DIR provides interrupt deactivation functionality.

VCBPR, [0]

Common Binary Point Register. Controls whether the same register is used for interrupt

preemption of both virtual Group 0 and virtual Group 1 interrupts. The possible values are:

0

ICV_BPR0 determines the preemption group for virtual Group 0

interrupts only.

ICV_BPR1 determines the preemption group for virtual Group 1

interrupts.

1

ICV_BPR0 determines the preemption group for both virtual Group 0

and virtual Group 1 interrupts.

Reads of ICV_BPR1 return ICV_BPR0 plus one, saturated to 111.

Writes to ICV_BPR1 are ignored.

Configurations

AArch32 System register ICV_CTLR is architecturally mapped to AArch64 System register

ICV_CTLR_EL1.

Bit fields and details not provided in this description are architecturally defined. See the 

 Arm

®

Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.18 AArch32 virtual interface control system register summary

The following table lists the AArch32 virtual interface control system registers that have

IMPLEMENTATION DEFINED

 bits.

See the 

 Arm

®

 Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and

version 4 

 for more information and a complete list of AArch32 virtual interface control system

registers.

Name

Op1 CRn CRm Op2 Type Description

ICH_AP0R0 4

12 8

0

RW

3.4.19 ICH_AP0R0, Interrupt Controller Hyp Active Priorities Group 0 Register 0

 on page

420

ICH_AP1R0 4

12 9

0

RW

3.4.20 ICH_AP1R0, Interrupt Controller Hyp Active Priorities Group 1 Register 0

 on page

420

ICH_HCR

4

12 11

0

RW

3.4.21 ICH_HCR, Interrupt Controller Hyp Control Register

 on page 421

ICH_LR0

4

12 12

0

RW

ICH_LR1

4

12 12

1

RW

ICH_LR2

4

12 12

2

RW

ICH_LR3

4

12 12

3

RW

Interrupt Controller List Registers 0-3. The Cortex

®

-A55 core implements four ICH_LR

registers, as defined by ICH_VTR.ListRegs. Accesses to the rest of the ICH_LR registers are

UNDEFINED.

ICH_VTR

4

12 11

1

RO

3.4.22 ICH_VMCR, Interrupt Controller Virtual Machine Control Register

 on page 424

ICH_VMCR 4

12 11

7

RW

3.4.23 ICH_VTR, Interrupt Controller VGIC Type Register

 on page 426

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

419

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.4.19 ICH_AP0R0, Interrupt Controller Hyp Active Priorities Group 0

Register 0

The ICH_AP0R0 provides information about Group 0 active priorities for EL2.

Bit field descriptions

This register is a 32-bit register and is part of:
• The GIC system registers functional group.
• The Virtualization registers functional group.
• The GIC host interface control registers functional group.

The core implements 5 bits of priority with 32 priority levels, corresponding to the 32 bits [31:0] of

the register. The possible values for each bit are:

0x00000000

No interrupt active. This is the reset value.

0x00000001

Interrupt active for priority 

0x0

.

0x00000002

Interrupt active for priority 

0x8

.

 

...

0x80000000

Interrupt active for priority 

0xF8

.

Configurations

AArch32 System register ICH_AP0R0 is architecturally mapped to AArch64 System register

ICH_AP0R0_EL2.

Details not provided in this description are architecturally defined. See the 

 Arm

®

 Generic Interrupt

Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.20 ICH_AP1R0, Interrupt Controller Hyp Active Priorities Group 1

Register 0

The ICH_AP1R0 provides information about Group 1 active priorities for EL2.

Bit field descriptions

This register is a 32-bit register and is part of:
• The GIC system registers functional group.
• The Virtualization registers functional group.
• The GIC host interface control registers functional group.

The core implements 5 bits of priority with 32 priority levels, corresponding to the 32 bits [31:0] of

the register. The possible values for each bit are:

0x00000000

No interrupt active. This is the reset value.

0x00000001

Interrupt active for priority 

0x0

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

420

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0x00000002

Interrupt active for priority 

0x8

.

 

...

0x80000000

Interrupt active for priority 

0xF8

.

Configurations

AArch32 System register ICH_AP1R0 is architecturally mapped to AArch64 System register

ICH_AP1R0_EL2.

If EL2 is not implemented, this register is 

RES0

 from EL3.

Details not provided in this description are architecturally defined. See the 

 Arm

®

 Generic Interrupt

Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.21 ICH_HCR, Interrupt Controller Hyp Control Register

ICH_HCR controls the environment for VMs.

Bit field descriptions

ICH_HCR is a 32-bit register and is part of:
• The GIC system registers functional group.
• The Virtualization registers functional group.
• The GIC host interface control registers functional group.

Figure 3-199: ICH_HCR bit assignments

31

0

1

2

5

6

7

8

10

11

13

14

15

26

En
UIE

NPIE
VGrp0EIE
VGrp0DIE

RES

0

3

4

VGrp1EIE
VGrp1DIE

TDIR

12

27

EOIcount

TSEI

TALL1
TALL0

TC

LRENPIE

EOIcount, [31:27]

 

Number of outstanding deactivates.

RES0, [26:15]

 

Reserved, 

RES0

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

421

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

TDIR, [14]

Trap Non-secure EL1 writes to ICC_DIR and ICV_DIR. The possible values are:

0x0

Non-secure EL1 writes of ICC_DIR and ICV_DIR are not trapped to

EL2, unless trapped by other mechanisms.

0x1

Non-secure EL1 writes of ICC_DIR and ICV_DIR are trapped to EL2.

TSEI, [13]

Trap all locally generated SEIs. The value is:

0x0

Locally generated SEIs do not cause a trap to EL2.

TALL1, [12]

Trap all Non-secure EL1 accesses to ICC_* and ICV_* System registers for Group 1 interrupts

to EL2. The possible values are:

0x0

Non-Secure EL1 accesses to ICC_* and ICV_* registers for Group 1

interrupts proceed as normal.

0x1

Non-secure EL1 accesses to ICC_* and ICV_* registers for Group 1

interrupts trap to EL2.

TALL0, [11]

Trap all Non-secure EL1 accesses to ICC_* and ICV_* System registers for Group 0 interrupts

to EL2. The possible values are:

0x0

Non-Secure EL1 accesses to ICC_* and ICV_* registers for Group 0

interrupts proceed as normal.

0x1

Non-secure EL1 accesses to ICC_* and ICV_* registers for Group 0

interrupts trap to EL2.

TC, [10]

Trap all Non-secure EL1 accesses to System registers that are common to Group 0 and Group

1 to EL2. The possible values are:

0x0

Non-secure EL1 accesses to common registers proceed as normal.

0x1

Non-secure EL1 accesses to common registers trap to EL2.

RES0, [9:8]

 

Reserved, 

RES0

.

VGrp1DIE, [7]

VM Group 1 Disabled Interrupt Enable. The possible values are:

0x0

Maintenance interrupt disabled.

0x1

Maintenance interrupt signaled when ICH_VMCR.VENG1 is 0.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

422

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

VGrp1EIE, [6]

VM Group 1 Enabled Interrupt Enable. The possible values are:

0x0

Maintenance interrupt disabled.

0x1

Maintenance interrupt signaled when ICH_VMCR.VENG1 is 1.

VGrp0DIE, [5]

VM Group 0 Disabled Interrupt Enable. The possible values are:

0x0

Maintenance interrupt disabled.

0x1

Maintenance interrupt signaled when ICH_VMCR.VENG0 is 0.

VGrp0EIE, [4]

VM Group 0 Enabled Interrupt Enable. The possible values are:

0x0

Maintenance interrupt disabled.

0x1

Maintenance interrupt signaled when ICH_VMCR.VENG0 is 1.

NPIE, [3]

No Pending Interrupt Enable. The possible values are:

0x0

Maintenance interrupt disabled.

0x1

Maintenance interrupt signaled while the List registers contain no

interrupts in the pending state.

LRENPIE, [2]

List Register Entry Not Present Interrupt Enable. The possible values are:

0x0

Maintenance interrupt disabled.

0x1

Maintenance interrupt is asserted while the EOIcount field is not 0.

UIE, [1]

Underflow Interrupt Enable. The possible values are:

0x0

Maintenance interrupt disabled.

0x1

Maintenance interrupt is asserted if none, or only one, of the List

register entries is marked as a valid interrupt.

En, [0]

Enable. The possible values are:

0x0

Virtual CPU interface operation disabled.

0x1

Virtual CPU interface operation enabled.

Configurations

AArch32 System register ICH_HSR can be mapped to AArch64 System register

ICH_HSR_EL2.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

423

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Bit fields and details not provided in this description are architecturally defined. See the 

 Arm

®

Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.22 ICH_VMCR, Interrupt Controller Virtual Machine Control Register

ICH_VMCR enables the hypervisor to save and restore the virtual machine view of the GIC state.

Bit field descriptions

ICH_VMCR is a 32-bit register and is part of:
• The GIC system registers functional group.
• The Virtualization registers functional group.
• The GIC host interface control registers functional group.

Figure 3-200: ICH_VMCR bit assignments

31

0

1

2

5

8

10

18

23

VENG0

VFIQEn
VCBPR

RES

0

3

4

VEOIM

21

VPMR

24

VBPR0

20

VBPR1

17

9

VENG1

VPMR, [31:24]

Virtual Priority Mask.

 

This field is an alias of ICV_PMR.Priority.

VBPR0, [23:21]

Virtual Binary Point Register, Group 0. The minimum value is:

0x2

This field is an alias of ICV_BPR0.BinaryPoint.

VBPR1, [20:18]

Virtual Binary Point Register, Group 1. The minimum value is:

0x3

This field is an alias of ICV_BPR1.BinaryPoint.

[17:10]

 

Reserved, 

RES0

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

424

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

VEOIM, [9]

Virtual EOI mode. The possible values are:

0x0

ICV_EOIR0 and ICV_EOIR1 provide both priority drop and interrupt

deactivation functionality. Accesses to ICV_DIR are 

UNPREDICTABLE

.

0x1

ICV_EOIR0 and ICV_EOIR1 provide priority drop functionality only.

ICV_DIR provides interrupt deactivation functionality.

This bit is an alias of ICV_CTLR.EOImode.

[8:5]

 

Reserved, 

RES0

.

VCBPR, [4]

Virtual Common Binary Point Register. The possible values are:

0x0

ICV_BPR0 determines the preemption group for virtual Group 0

interrupts only.

ICV_BPR1 determines the preemption group for virtual Group 1

interrupts.

0x1

ICV_BPR0 determines the preemption group for both virtual Group 0

and virtual Group 1 interrupts.

Reads of ICV_BPR1 return ICV_BPR0 plus one, saturated to 111.

Writes to ICV_BPR1 are ignored.

VFIQEn, [3]

Virtual FIQ enable. The value is:

0x1

Group 0 virtual interrupts are presented as virtual FIQs.

[2]

 

Reserved, 

RES0

.

VENG1, [1]

Virtual Group 1 interrupt enable. The possible values are:

0x0

Virtual Group 1 interrupts are disabled.

0x1

Virtual Group 1 interrupts are enabled.

This bit is an alias of ICV_IGRPEN1.Enable.

VENG0, [0]

Virtual Group 0 interrupt enable. The possible values are:

0x0

Virtual Group 0 interrupts are disabled.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

425

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0x1

Virtual Group 0 interrupts are enabled.

This bit is an alias of ICV_IGRPEN0.Enable.

Configurations

AArch32 System register ICH_VMCR can be mapped to AArch64 System register

ICH_VMCR_EL2.

If EL2 is not implemented, this register is 

RES0

 from EL3.

Bit fields and details not provided in this description are architecturally defined. See the 

 Arm

®

Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.23 ICH_VTR, Interrupt Controller VGIC Type Register

ICH_VTR reports supported GIC virtualization features.

Bit field descriptions

ICH_VTR is a 32-bit register and is part of:
• The GIC system registers functional group.
• The Virtualization registers functional group.
• The GIC host interface control registers functional group.

Figure 3-201: ICH_VTR bit assignments

31

0

5

18

23

RES

0

4

21

PRIbits

20

ListRegs

29

PREbits

28

26 25

IDbits

22

19

TDS
nV4
A3V
SEIS

PRIbits, [31:29]

Priority bits. The number of virtual priority bits implemented, minus one.

0x4

Priority implemented is 5-bit.

PREbits, [28:26]

The number of virtual preemption bits implemented, minus one. The value is:

0x4

Virtual preemption implemented is 5-bit.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

426

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

IDbits, [25:23]

The number of virtual interrupt identifier bits supported. The value is:

0x0

Virtual interrupt identifier bits implemented is 16-bit.

SEIS, [22]

SEI Support. The value is:

0x0

The virtual CPU interface logic does not support generation of SEIs.

A3V, [21]

Affinity 3 Valid. The value is:

0x1

The virtual CPU interface logic supports non-zero values of Affinity 3

in SGI generation System registers.

nV4, [20]

Direct injection of virtual interrupts not supported. The value is:

0x0

The CPU interface logic supports direct injection of virtual interrupts.

TDS, [19]

Separate trapping of Non-secure EL1 writes to ICV_DIR supported. The value is:

0x1

Implementation supports ICH_HCR.TDIR.

RES0, [18:5]

 

Reserved, 

RES0

.

ListRegs, [4:0]

The number of implemented List registers, minus one. The value is:

3

The core implements four List registers.

Configurations

AArch32 System register ICH_VTR is architecturally mapped to AArch64 System register

ICH_VTR_EL2.

If EL2 is not implemented, all bits in this register are 

RES0

 from EL3, except for nV4, which is

RES1

 from EL3.

Bit fields and details not provided in this description are architecturally defined. See the 

 Arm

®

Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

427

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.4.24 AArch64 physical GIC CPU interface System register summary

The following table lists the AArch64 physical GIC CPU interface System registers that have

IMPLEMENTATION DEFINED

 bits.

See the 

 Arm

®

 Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and

version 4 

 for more information and a complete list of AArch64 physical GIC CPU interface System

registers.

Table 3-100: AArch64 physical GIC CPU interface System register summary

Name

Op0 Op1 CRn CRm Op2 Type Description

ICC_AP0R0_EL1 3

0

12 8

4

RW

3.4.25 ICC_AP0R0_EL1, Interrupt Controller Active Priorities Group 0 Register 0,

EL1

 on page 428

ICC_AP1R0_EL1 3

0

12 9

0

RW

3.4.26 ICC_AP1R0_EL1, Interrupt Controller Active Priorities Group 1 Register 0

EL1

 on page 429

ICC_BPR0_EL1 3

0

12 8

3

RW

3.4.27 ICC_BPR0_EL1, Interrupt Controller Binary Point Register 0, EL1

 on page

429

ICC_BPR1_EL1 3

0

12 12

3

RW

3.4.28 ICC_BPR1_EL1, Interrupt Controller Binary Point Register 1, EL1

 on page

430

ICC_CTLR_EL1 3

0

12 12

4

RW

3.4.29 ICC_CTLR_EL1, Interrupt Controller Control Register, EL1

 on page 432

ICC_CTLR_EL3 3

6

12 12

4

RW

3.4.30 ICC_CTLR_EL3, Interrupt Controller Control Register, EL3

 on page 434

ICC_SRE_EL1

3

0

12 12

5

RW

3.4.31 ICC_SRE_EL1, Interrupt Controller System Register Enable Register, EL1

 on

page 436

ICC_SRE_EL2

3

4

12 9

5

RW

3.4.32 ICC_SRE_EL2, Interrupt Controller System Register Enable register, EL2

 on

page 438

ICC_SRE_EL3

3

6

12 12

5

RW

3.4.33 ICC_SRE_EL3, Interrupt Controller System Register Enable register, EL3

 on

page 439

3.4.25 ICC_AP0R0_EL1, Interrupt Controller Active Priorities Group 0

Register 0, EL1

The ICC_AP0R0_EL1 provides information about Group 0 active priorities.

Bit descriptions

This register is a 32-bit register and is part of:
• The GIC System registers functional group.
• The GIC control registers functional group.

The core implements 5 bits of priority with 32 priority levels, corresponding to the 32 bits [31:0] of

the register. The possible values for each bit are:

0x00000000

No interrupt active. This is the reset value.

0x00000001

Interrupt active for priority 

0x0

.

0x00000002

Interrupt active for priority 

0x8

.

 

...

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

428

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0x80000000

Interrupt active for priority 

0xF8

.

Configurations

AArch64 System register ICC_AP0R0_EL1 is architecturally mapped to AArch32 System

register ICC_AP0R0.

Accessibility

The Cortex

®

-A55 core supports 5-bit interrupt priority or 32 possible pre-emptible priorities.

Accesses to ICC_AP0R0_EL1 are 

UNDEFINED

.

Details that are not provided in this description are architecturally defined. See the 

 Arm

®

 Generic

Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.26 ICC_AP1R0_EL1, Interrupt Controller Active Priorities Group 1

Register 0 EL1

The ICC_AP1R0_EL1 provides information about Group 1 active priorities.

Bit descriptions

This register is a 32-bit register and is part of:
• The GIC System registers functional group.
• The GIC control registers functional group.

The core implements 5 bits of priority with 32 priority levels, corresponding to the 32 bits [31:0] of

the register. The possible values for each bit are:

0x00000000

No interrupt active. This is the reset value.

0x00000001

Interrupt active for priority 

0x0

.

0x00000002

Interrupt active for priority 

0x8

.

 

...

0x80000000

Interrupt active for priority 

0xF8

.

Configurations

AArch64 System register ICC_AP1R0_EL1 is architecturally mapped to AArch32 System

register ICC_AP1R0.

Accessibility

The Cortex

®

-A55 core supports 5-bit interrupt priority or 32 possible preemptable priorities.

Accesses to ICC_AP1R0 are 

UNDEFINED

.

Details that are not provided in this description are architecturally defined. See the 

 Arm

®

 Generic

Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

429

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.4.27 ICC_BPR0_EL1, Interrupt Controller Binary Point Register 0, EL1

ICC_BPR0_EL1 defines the point at which the priority value fields split into two parts, the group

priority field and the subpriority field. The group priority field determines Group 0 interrupt

preemption.

Bit field descriptions

ICC_BPR0_EL1 is a 32-bit register and is part of:
• The GIC System registers functional group.
• The GIC control registers functional group.

Figure 3-202: ICC_BPR0_EL1 bit assignments

31

0

2

3

BinaryPoint

RES

0

RES0, [31:3]

RES0

Reserved.

BinaryPoint, [2:0]

The value of this field controls how the 8-bit interrupt priority field is split into a group

priority field, that determines interrupt preemption, and a subpriority field. The minimum

value that is implemented is:

0x2

Configurations

AArch64 System register ICC_BPR0_EL1 is architecturally mapped to AArch32 System

register ICC_BPR0.

Virtual accesses to this register update ICH_VMCR_EL2.VBPR0.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

430

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.4.28 ICC_BPR1_EL1, Interrupt Controller Binary Point Register 1, EL1

ICC_BPR1_EL1 defines the point at which the priority value fields split into two parts, the group

priority field and the subpriority field. The group priority field determines Group 1 interrupt

preemption.

Bit field descriptions

ICC_BPR1_EL1 is a 32-bit register and is part of:
• The GIC System registers functional group.
• The GIC control registers functional group.

Figure 3-203: ICC_BPR1_EL1 bit assignments

31

0

2

3

BinaryPoint

RES

0

RES0, [31:3]

RES0

Reserved.

BinaryPoint, [2:0]

The value of this field controls how the 8-bit interrupt priority field is split into a group

priority field, that determines interrupt preemption, and a subpriority field.

The minimum value that is implemented of ICC_BPR1_EL1 Secure register is 

0x2

.

The minimum value that is implemented of ICC_BPR1_EL1 Non-secure register is 

0x3

.

Configurations

AArch64 System register ICC_BPR1_EL1 (S) is architecturally mapped to AArch32 System

register ICC_BPR1 (S).

AArch64 System register ICC_BPR1_EL1 (NS) is architecturally mapped to AArch32 System

register ICC_BPR1 (NS).

Virtual accesses to this register update ICH_VMCR_EL2.VBPR1.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

431

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

3.4.29 ICC_CTLR_EL1, Interrupt Controller Control Register, EL1

ICC_CTLR_EL1 controls aspects of the behavior of the GIC CPU interface and provides information

about the features implemented.

Bit field descriptions

ICC_CTLR_EL1 is a 32-bit register and is part of:
• The GIC System registers functional group.
• The GIC control registers functional group.

Figure 3-204: ICC_CTLR_EL1 bit assignments

31

0

1

2

5

6

7

8

10

11

13

14

15

16

CBPR
EOImode
PMHE

PRIbits

IDbits

SEIS
A3V

RES

0

RES0, [31:16]

RES0

Reserved.

A3V, [15]

Affinity 3 Valid. The value is:

1

The CPU interface logic supports nonzero values of Affinity 3 in SGI

generation System registers.

SEIS, [14]

SEI Support. The value is:

0

The CPU interface logic does not support local generation of SEIs.

IDbits, [13:11]

Identifier bits. The value is:

0

The number of physical interrupt identifier bits supported is 16 bits.

This field is an alias of ICC_CTLR_EL3.IDbits.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

432

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

PRIbits, [10:8]

Priority bits. The value is:

0x4

The core supports 32 levels of physical priority with 5 priority bits.

RES0, [7]

RES0

Reserved.

PMHE, [6]

Priority Mask Hint Enable. This bit is an alias of ICC_CTLR_EL3.PMHE. The possible values

are:

0

Disables use of ICC_PMR as a hint for interrupt distribution.

1

Enables use of ICC_PMR as a hint for interrupt distribution.

RES0, [5:2]

RES0

Reserved.

EOImode, [1]

End of interrupt mode for the current Security state. The possible values are:

0

ICC_EOIR0 and ICC_EOIR1 provide both priority drop and interrupt

deactivation functionality. Accesses to ICC_DIR are 

UNPREDICTABLE

.

1

ICC_EOIR0 and ICC_EOIR1 provide priority drop functionality only.

ICC_DIR provides interrupt deactivation functionality.

If El3 is using AArch32, this bit is an alias of ICC_MCTLR.EOImode_EL1 {S, NS}.

If EL3 is using AArch64, this bit is an alias of ICC_CTLR_EL3.EOImode_EL1 {S, NS}.

CBPR, [0]

Common Binary Point Register. Control whether the same register is used for interrupt

preemption of both Group 0 and Group 1 interrupt. The possible values are:

0

ICC_BPR0 determines the preemption group for Group 0 interrupts.

ICC_BPR1 determines the preemption group for Group 1 interrupts.

1

ICC_BPR0 determines the preemption group for Group 0 and Group

1 interrupts.

If EL3 is using AArch32, this bit is an alias of ICC_MCTLR.CBPR_EL1 {N, NS}.

If EL3 is using AArch64, this bit is an alias of ICC_CTLR_EL3.CBPR_EL1 {S, NS}.

If GICD_CTLR.DS == 0, this bit is read-only.

If GICD_CTLR.DS == 0, this bit is read/write.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

433

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Configurations

AArch64 System register ICC_CTLR_EL1 (S) is architecturally mapped to AArch32 System

register ICC_CTLR (S).

AArch64 System register ICC_CTLR_EL1 (NS) is architecturally mapped to AArch32 System

register ICC_CTLR(NS).

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.30 ICC_CTLR_EL3, Interrupt Controller Control Register, EL3

ICC_CTLR_EL3 controls aspects of the behavior of the GIC CPU interface and provides information

about the features implemented.

Bit field descriptions

ICC_CTLR_EL3 is a 32-bit register and is part of:
• The GIC System registers functional group.
• The Security registers functional group.
• The GIC control registers functional group.

Figure 3-205: ICC_CTLR_EL3 bit assignments

31

0

1

2

5

6

7

8

10

11

13

14

15

16

CBPR_EL1S
CBPR_EL1NS

PMHE

PRIbits

IDbits

SEIS
A3V

RES

0

3

4

17

18

nDS

EOImode_EL3
EOImode_EL1S
EOImode_EL1NS
RM

RES0, [31:18]

RES0

Reserved.

nDS, [17]

Disable Security not supported. Read-only and writes are 

IGNORED

. The value is:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

434

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

1

The CPU interface logic does not support disabling of security, and

requires that security is not disabled.

RES0, [16]

RES0

Reserved.

A3V, [15]

 

Affinity 3 Valid. This bit is RAO/WI.

SEIS, [14]

SEI Support. The value is:

0

The CPU interface logic does not support generation of SEIs.

IDbits, [13:11]

Identifier bits. The value is:

0x0

The number of physical interrupt identifier bits supported is 16 bits.

This field is an alias of ICC_CTLR_EL3.IDbits.

PRIbits, [10:8]

Priority bits. The value is:

0x4

The core supports 32 levels of physical priority with 5 priority bits.

RES0, [7]

 

Reserved, 

RES0

.

PMHE, [6]

Priority Mask Hint Enable. The possible values are:

0

Disables use of ICC_PMR as a hint for interrupt distribution.

1

Enables use of ICC_PMR as a hint for interrupt distribution.

RM, [5]

 

Routing Modifier. This bit is RAZ/WI.

EOImode_EL1NS, [4]

EOI mode for interrupts handled at Non-secure EL1 and EL2.

Controls whether a write to an End of Interrupt register also deactivates the interrupt.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

435

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

EOImode_EL1S, [3]

EOI mode for interrupts handled at Secure EL1.

Controls whether a write to an End of Interrupt register also deactivates the interrupt.

EOImode_EL3, [2]

EOI mode for interrupts handled at EL3.

Controls whether a write to an End of Interrupt register also deactivates the interrupt.

CBPR_EL1NS, [1]

Common Binary Point Register, EL1 Non-secure.

Control whether the same register is used for interrupt preemption of both Group 0 and

Group 1 Non-secure interrupts at EL1 and EL2.

CBPR_EL1S, [0]

Common Binary Point Register, EL1 Secure.

Control whether the same register is used for interrupt preemption of both Group 0 and

Group 1 Secure interrupt at EL1.

Configurations

AArch64 System register ICC_CTLR_EL3 can be mapped to AArch32 System register

ICC_MCTLR.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.31 ICC_SRE_EL1, Interrupt Controller System Register Enable Register,

EL1

ICC_SRE_EL1 controls whether the System register interface or the memory-mapped interface to

the GIC CPU interface is used for EL0 and EL1.

Bit field descriptions

ICC_SRE_EL1 is a 32-bit register and is part of:
• The GIC System registers functional group.
• The GIC control registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

436

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-206: ICC_SRE_EL1 bit assignments

31

0

1

2

3

SRE
DFB
DIB

RES

0

RES0, [31:3]

RES0

Reserved.

DIB, [2]

Disable IRQ bypass. The possible values are:

0x0

IRQ bypass enabled.

0x1

IRQ bypass disabled.

This bit is an alias of ICC_SRE_EL3.DIB

DFB, [1]

Disable FIQ bypass. The possible values are:

0x0

FIQ bypass enabled.

0x1

FIQ bypass disabled.

This bit is an alias of ICC_SRE_EL3.DFB

SRE, [0]

System Register Enable. The value is:

0x1

The System register interface for the current Security state is

enabled.

This bit is RAO/WI. The core only supports a System register interface to the GIC CPU

interface.

Configurations

AArch64 System register ICC_SRE_EL1 (S) is architecturally mapped to AArch32 System

register ICC_SRE (S).

AArch64 System register ICC_SRE_EL1 (NS) is architecturally mapped to AArch32 System

register ICC_SRE (NS).

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

437

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.32 ICC_SRE_EL2, Interrupt Controller System Register Enable register,

EL2

ICC_SRE_EL2 controls whether the System register interface or the memory-mapped interface to

the GIC CPU interface is used for EL2.

Bit field descriptions

ICC_SRE_EL2 is a 32-bit register and is part of:
• The GIC System registers functional group.
• The Virtualization registers functional group.
• The GIC control registers functional group.

Figure 3-207: ICC_SRE_EL2 bit assignments

31

0

1

2

3

SRE
DFB
DIB

RES

0

4

Enable

RES0, [31:4]

RES0

Reserved.

Enable, [3]

Enables lower Exception level access to ICC_SRE_EL1. The value is:

0x1

Non-secure EL1 accesses to ICC_SRE_EL1 do not trap to EL2.

This bit is RAO/WI.

DIB, [2]

Disable IRQ bypass. The possible values are:

0x0

IRQ bypass enabled.

0x1

IRQ bypass disabled.

This bit is an alias of ICC_SRE_EL3.DIB

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

438

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

DFB, [1]

Disable FIQ bypass. The possible values are:

0x0

FIQ bypass enabled.

0x1

FIQ bypass disabled.

This bit is an alias of ICC_SRE_EL3.DFB

SRE, [0]

System Register Enable. The value is:

0x1

The System register interface for the current Security state is

enabled.

This bit is RAO/WI. The core only supports a System register interface to the GIC CPU

interface.

Configurations

AArch64 System register ICC_SRE_EL2 is architecturally mapped to AArch32 System register

ICC_HSRE.

If EL2 is not implemented, this register is 

RES0

 from EL3.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.33 ICC_SRE_EL3, Interrupt Controller System Register Enable register,

EL3

ICC_SRE_EL3 controls whether the System register interface or the memory-mapped interface to

the GIC CPU interface is used for EL3.

Bit field descriptions

ICC_SRE_EL3 is a 32-bit register and is part of:
• The GIC System registers functional group.
• The Security registers functional group.
• The GIC control registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

439

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-208: ICC_SRE_EL3 bit assignments

31

0

1

2

3

SRE
DFB
DIB

RES

0

4

Enable

RES0, [31:4]

RES0

Reserved.

Enable, [3]

Enables lower Exception level access to ICC_SRE_EL1 and ICC_SRE_EL2. The value is:

1

Secure EL1 accesses to Secure ICC_SRE_EL1 do not trap to EL3.

EL2 accesses to Non-secure ICC_SRE_EL1 and ICC_SRE_EL2 do not

trap to EL3.

Non-secure EL1 accesses to ICC_SRE_EL1 do not trap to EL3.

This bit is RAO/WI.

DIB, [2]

Disable IRQ bypass. The possible values are:

0

IRQ bypass enabled.

1

IRQ bypass disabled.

DFB, [1]

Disable FIQ bypass. The possible values are:

0

FIQ bypass enabled.

1

FIQ bypass disabled.

SRE, [0]

System Register Enable. The value is:

1

The System register interface for the current Security state is

enabled.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

440

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

This bit is RAO/WI. The core only supports a System register interface to the GIC CPU

interface.

Configurations

AArch64 System register ICC_SRE_EL3 can be mapped to AArch32 System register

ICC_MSRE.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.34 AArch64 virtual GIC CPU interface register summary

The following table describes the AArch64 virtual GIC CPU interface System registers that have

IMPLEMENTATION DEFINED

 bits.

See the 

 Arm

®

 Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and

version 4 

 for more information and a complete list of AArch64 virtual GIC CPU interface System

registers.

Table 3-101: AArch64 virtual GIC CPU interface register summary

Name

Op0 Op1 CRn CRm Op2 Type Description

ICV_AP0R0_EL1 3

0

12 8

4

RW

3.4.35 ICV_AP0R0_EL1, Interrupt Controller Virtual Active Priorities Group 0

Register 0, EL1

 on page 441

ICV_AP1R0_EL1 3

0

12 9

0

RW

3.4.36 ICV_AP1R0_EL1, Interrupt Controller Virtual Active Priorities Group 1

Register 0, EL1

 on page 442

ICV_BPR0_EL1 3

0

12 8

3

RW

3.4.37 ICV_BPR0_EL1, Interrupt Controller Virtual Binary Point Register 0, EL1

 on

page 442

ICV_BPR1_EL1 3

0

12 12

3

RW

3.4.38 ICV_BPR1_EL1, Interrupt Controller Virtual Binary Point Register 1, EL1

 on

page 443

ICV_CTLR_EL1 3

0

12 12

4

RW

3.4.39 ICV_CTLR_EL1, Interrupt Controller Virtual Control Register, EL1

 on page

444

3.4.35 ICV_AP0R0_EL1, Interrupt Controller Virtual Active Priorities Group

0 Register 0, EL1

The ICV_AP0R0_EL1 register provides information about virtual Group 0 active priorities.

Bit descriptions

This register is a 32-bit register and is part of the virtual GIC System registers functional group.

The core implements 5 bits of priority with 32 priority levels, corresponding to the 32 bits [31:0] of

the register. The possible values for each bit are:

0x00000000

No interrupt active. This is the reset value.

0x00000001

Interrupt active for priority 

0x0

.

0x00000002

Interrupt active for priority 

0x8

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

441

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

 

...

0x80000000

Interrupt active for priority 

0xF8

.

Configurations

AArch64 System register ICV_AP0R0_EL1 is architecturally mapped to AArch32 System

register ICV_AP0R0.

Details that are not provided in this description are architecturally defined. See the 

 Arm

®

 Generic

Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.36 ICV_AP1R0_EL1, Interrupt Controller Virtual Active Priorities Group

1 Register 0, EL1

The ICV_AP1R0_EL1 register provides information about virtual Group 1 active priorities.

Bit descriptions

This register is a 32-bit register and is part of the virtual GIC System registers functional group.

The core implements 5 bits of priority with 32 priority levels, corresponding to the 32 bits [31:0] of

the register. The possible values for each bit are:

0x00000000

No interrupt active. This is the reset value.

0x00000001

Interrupt active for priority 

0x0

.

0x00000002

Interrupt active for priority 

0x8

.

 

...

0x80000000

Interrupt active for priority 

0xF8

.

Configurations

AArch64 System register ICV_AP1R0_EL1 is architecturally mapped to AArch32 System

register ICV_AP1R0.

Details that are not provided in this description are architecturally defined. See the 

 Arm

®

 Generic

Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.37 ICV_BPR0_EL1, Interrupt Controller Virtual Binary Point Register 0,

EL1

ICV_BPR0_EL1 defines the point at which the priority value fields split into two parts, the group

priority field and the subpriority field. The group priority field determines virtual Group 0 interrupt

preemption.

Bit field descriptions

ICC_BPR0_EL1 is a 32-bit register and is part of the virtual GIC System registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

442

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-209: ICV_BPR0_EL1 bit assignments

31

0

2

3

BinaryPoint

RES

0

RES0, [31:3]

 

Reserved, 

RES0

.

BinaryPoint, [2:0]

The value of this field controls how the 8-bit interrupt priority field is split into a group

priority field, that determines interrupt preemption, and a subpriority field. The minimum

value that is implemented is:

0x2

Configurations

AArch64 System register ICV_BPR0_EL1 is architecturally mapped to AArch32 System

register ICV_BPR0.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.38 ICV_BPR1_EL1, Interrupt Controller Virtual Binary Point Register 1,

EL1

ICV_BPR1_EL1 defines the point at which the priority value fields split into two parts, the group

priority field and the subpriority field. The group priority field determines virtual Group 1 interrupt

preemption.

Bit field descriptions

ICV_BPR1_EL1 is a 32-bit register and is part of the virtual GIC System registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

443

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-210: ICV_BPR1_EL1 bit assignments

31

0

2

3

BinaryPoint

RES

0

RES0, [31:3]

RES0

Reserved.

BinaryPoint, [2:0]

The value of this field controls how the 8-bit interrupt priority field is split into a group

priority field, that determines interrupt preemption, and a subpriority field.

The minimum value that is implemented of ICV_BPR1_EL1 Secure register is 

0x2

.

The minimum value that is implemented of ICV_BPR1_EL1 Non-secure register is 

0x3

.

Configurations

AArch64 System register ICV_BPR1_EL1 is architecturally mapped to AArch32 System

register ICV_BPR1.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.39 ICV_CTLR_EL1, Interrupt Controller Virtual Control Register, EL1

ICV_CTLR_EL1 controls aspects of the behavior of the GIC virtual CPU interface and provides

information about the features implemented.

Bit field descriptions

ICV_CTLR_EL1 is a 32-bit register and is part of the virtual GIC System registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

444

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Figure 3-211: ICV_CTLR_EL1 bit assignments

31

0

16

RES

0

PRIbits

VCBPR
VEOImode

15 14 13

10

8 7

2 1

11

IDbits

A3V

SEIS

RES0, [31:16]

RES0

Reserved.

A3V, [15]

Affinity 3 Valid. The value is:

0x1

The virtual CPU interface logic supports nonzero values of Affinity 3

in SGI generation System registers.

SEIS, [14]

SEI Support. The value is:

0x0

The virtual CPU interface logic does not support local generation of

SEIs.

IDbits, [13:11]

Identifier bits. The value is:

0x0

The number of physical interrupt identifier bits supported is 16 bits.

PRIbits, [10:8]

Priority bits. The value is:

0x4

Support 32 levels of physical priority (5 priority bits).

RES0, [7:2]

RES0

Reserved.

VEOImode, [1]

Virtual EOI mode. The possible values are:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

445

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0x0

ICV_EOIR0_EL1 and ICV_EOIR1_EL1 provide both priority drop and

interrupt deactivation functionality. Accesses to ICV_DIR_EL1 are

UNPREDICTABLE

.

0x1

ICV_EOIR0_EL1 and ICV_EOIR1_EL1 provide priority drop

functionality only. ICV_DIR provides interrupt deactivation

functionality.

VCBPR, [0]

Common Binary Point Register. Controls whether the same register is used for interrupt

preemption of both virtual Group 0 and virtual Group 1 interrupts. The possible values are:

0

ICV_BPR0_EL1 determines the preemption group for virtual Group 0

interrupts only.

ICV_BPR1_EL1 determines the preemption group for virtual Group 1

interrupts.

1

ICV_BPR0_EL1 determines the preemption group for both virtual

Group 0 and virtual Group 1 interrupts.

Reads of ICV_BPR1_EL1 return ICV_BPR0_EL1 plus one, saturated

to 111. Writes to ICV_BPR1_EL1 are 

IGNORED

.

Configurations

AArch64 System register ICV_CTLR_EL1 is architecturally mapped to AArch32 System

register ICV_CTLR.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.40 AArch64 virtual interface control System register summary

The following table lists the AArch64 virtual interface control System registers that have

IMPLEMENTATION DEFINED

 bits.

See the 

 Arm

®

 Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and

version 4 

 for more information and a complete list of AArch64 virtual interface control System

registers.

Table 3-102: AArch64 virtual interface control System register summary

Name

Op0 Op1 CRn CRm Op2 Type Description

ICH_AP0R0_EL2 3

0

12 8

4

RW

3.4.41 ICH_AP0R0_EL2, Interrupt Controller Hyp Active Priorities Group 0 Register

0, EL2

 on page 447

ICH_AP1R0_EL2 3

0

19 9

0

RW

3.4.42 ICH_AP1R0_EL2, Interrupt Controller Hyp Active Priorities Group 1 Register

0, EL2

 on page 447

ICH_HCR_EL2

3

4

12 11

0

RW

3.4.43 ICH_HCR_EL2, Interrupt Controller Hyp Control Register, EL2

 on page

448

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

446

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Name

Op0 Op1 CRn CRm Op2 Type Description

ICH_VTR_EL2

3

4

12 11

1

RO

3.4.44 ICH_VMCR_EL2, Interrupt Controller Virtual Machine Control Register, EL2

on page 451

ICH_VMCR_EL2 3

4

12 11

7

RW

3.4.45 ICH_VTR_EL2, Interrupt Controller VGIC Type Register, EL2

 on page 453

3.4.41 ICH_AP0R0_EL2, Interrupt Controller Hyp Active Priorities Group 0

Register 0, EL2

The ICH_AP0R0_EL2 provides information about Group 0 active priorities for EL2.

Bit field descriptions

This register is a 32-bit register and is part of:
• The GIC System registers functional group.
• The Virtualization registers functional group.
• The GIC host interface control registers functional group.

The core implements 5 bits of priority with 32 priority levels, corresponding to the 32 bits [31:0] of

the register. The possible values for each bit are:

0x00000000

No interrupt active. This is the reset value.

0x00000001

Interrupt active for priority 

0x0

.

0x00000002

Interrupt active for priority 

0x8

.

 

...

0x80000000

Interrupt active for priority 

0xF8

.

Configurations

AArch64 System register ICH_AP0R0_EL2 is architecturally mapped to

AArch32 System register ICH_AP0R0.

If EL2 is not implemented, this register is 

RES0

 from EL3.

Details that are not provided in this description are architecturally defined. See the 

 Arm

®

 Generic

Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.42 ICH_AP1R0_EL2, Interrupt Controller Hyp Active Priorities Group 1

Register 0, EL2

The ICH_AP1R0_EL2 provides information about Group 1 active priorities for EL2.

Bit field descriptions

This register is a 32-bit register and is part of:
• The GIC System registers functional group.
• The Virtualization registers functional group.
• The GIC host interface control registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

447

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

The core implements 5 bits of priority with 32 priority levels, corresponding to the 32 bits [31:0] of

the register. The possible values for each bit are:

0x00000000

No interrupt active. This is the reset value.

0x00000001

Interrupt active for priority 

0x0

.

0x00000002

Interrupt active for priority 

0x8

.

 

...

0x80000000

Interrupt active for priority 

0xF8

.

Configurations

AArch64 System register ICH_AP1R0_EL2 is architecturally mapped to

AArch32 System register ICH_AP1R0.

If EL2 is not implemented, this register is 

RES0

 from EL3.

Details that are not provided in this description are architecturally defined. See the 

 Arm

®

 Generic

Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.43 ICH_HCR_EL2, Interrupt Controller Hyp Control Register, EL2

ICH_HCR_EL2 controls the environment for VMs.

Bit field descriptions

ICH_HCR_EL2 is a 32-bit register and is part of:
• The GIC System registers functional group.
• The Virtualization registers functional group.
• The GIC host interface control registers functional group.

Figure 3-212: ICH_HCR_EL2 bit assignments

31

0

1

2

5

6

7

8

10

11

13

14

15

26

En
UIE

NPIE
VGrp0EIE
VGrp0DIE

RES

0

3

4

VGrp1EIE
VGrp1DIE

TDIR

12

27

EOIcount

TSEI

TALL1
TALL0

TC

LRENPIE

EOIcount, [31:27]

 

Number of outstanding deactivates.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

448

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

RES0, [26:15]

RES0

Reserved.

TDIR, [14]

Trap Non-secure EL1 writes to ICC_DIR_EL1 and ICV_DIR_EL1. The possible values are:

0x0

Non-secure EL1 writes of ICC_DIR_EL1 and ICV_DIR_EL1 are not

trapped to EL2, unless trapped by other mechanisms.

0x1

Non-secure EL1 writes of ICC_DIR_EL1 and ICV_DIR_EL1 are

trapped to EL2.

TSEI, [13]

Trap all locally generated SEIs. The value is:

0

Locally generated SEIs do not cause a trap to EL2.

TALL1, [12]

Trap all Non-secure EL1 accesses to ICC_* and ICV_* System registers for Group 1 interrupts

to EL2. The possible values are:

0x0

Non-secure EL1 accesses to ICC_* and ICV_* registers for Group 1

interrupts proceed as normal.

0x1

Non-secure EL1 accesses to ICC_* and ICV_* registers for Group 1

interrupts trap to EL2.

TALL0, [11]

Trap all Non-secure EL1 accesses to ICC_* and ICV_* System registers for Group 0 interrupts

to EL2. The possible values are:

0x0

Non-secure EL1 accesses to ICC_* and ICV_* registers for Group 0

interrupts proceed as normal.

0x1

Non-secure EL1 accesses to ICC_* and ICV_* registers for Group 0

interrupts trap to EL2.

TC, [10]

Trap all Non-secure EL1 accesses to System registers that are common to Group 0 and Group

1 to EL2. The possible values are:

0x0

Non-secure EL1 accesses to common registers proceed as normal.

0x1

Non-secure EL1 accesses to common registers trap to EL2.

RES0, [9:8]

RES0

Reserved.

VGrp1DIE, [7]

VM Group 1 Disabled Interrupt Enable. The possible values are:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

449

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

0

Maintenance interrupt disabled.

1

Maintenance interrupt signaled when ICH_VMCR_EL2.VENG1 is 0.

VGrp1EIE, [6]

VM Group 1 Enabled Interrupt Enable. The possible values are:

0

Maintenance interrupt disabled.

1

Maintenance interrupt signaled when ICH_VMCR_EL2.VENG1 is 1.

VGrp0DIE, [5]

VM Group 0 Disabled Interrupt Enable. The possible values are:

0

Maintenance interrupt disabled.

1

Maintenance interrupt signaled when ICH_VMCR_EL2.VENG0 is 0.

VGrp0EIE, [4]

VM Group 0 Enabled Interrupt Enable. The possible values are:

0

Maintenance interrupt disabled.

1

Maintenance interrupt signaled when ICH_VMCR_EL2.VENG0 is 1.

NPIE, [3]

No Pending Interrupt Enable. The possible values are:

0

Maintenance interrupt disabled.

1

Maintenance interrupt signaled while the List registers contain no

interrupts in the pending state.

LRENPIE, [2]

List Register Entry Not Present Interrupt Enable. The possible values are:

0

Maintenance interrupt disabled.

1

Maintenance interrupt is asserted while the EOIcount field is not 0.

UIE, [1]

Underflow Interrupt Enable. The possible values are:

0

Maintenance interrupt disabled.

1

Maintenance interrupt is asserted if none, or only one, of the List

register entries is marked as a valid interrupt.

En, [0]

Enable. The possible values are:

0

Virtual CPU interface operation disabled.

1

Virtual CPU interface operation enabled.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

450

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Configurations

AArch64 System register ICH_HCR_EL2 is architecturally mapped to AArch32 System

register ICH_HCR.

If EL2 is not implemented, this register is 

RES0

 from EL3.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.44 ICH_VMCR_EL2, Interrupt Controller Virtual Machine Control

Register, EL2

ICH_VMCR_EL2 enables the hypervisor to save and restore the virtual machine view of the GIC

state.

Bit field descriptions

ICH_VMCR_EL2 is a 32-bit register and is part of:
• The GIC System registers functional group.
• The Virtualization registers functional group.
• The GIC host interface control registers functional group.

Figure 3-213: ICH_VMCR_EL2 bit assignments

31

0

1

2

5

8

10

18

23

VENG0

VFIQEn
VCBPR

RES

0

3

4

VEOIM

21

VPMR

24

VBPR0

20

VBPR1

17

9

VENG1

VPMR, [31:24]

Virtual Priority Mask.

 

This field is an alias of ICV_PMR_EL1.Priority.

VBPR0, [23:21]

Virtual Binary Point Register, Group 0. The minimum value is:

0x2

This field is an alias of ICV_BPR0_EL1.BinaryPoint.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

451

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

VBPR1, [20:18]

Virtual Binary Point Register, Group 1. The minimum value is:

0x3

This field is an alias of ICV_BPR1_EL1.BinaryPoint.

RES0, [17:10]

RES0

Reserved.

VEOIM, [9]

Virtual EOI mode. The possible values are:

0x0

ICV_EOIR0_EL1 and ICV_EOIR1_EL1 provide both priority drop and

interrupt deactivation functionality. Accesses to ICV_DIR_EL1 are

UNPREDICTABLE

.

0x1

ICV_EOIR0_EL1 and ICV_EOIR1_EL1 provide priority drop

functionality only. ICV_DIR_EL1 provides interrupt deactivation

functionality.

This bit is an alias of ICV_CTLR_EL1.EOImode.

RES0, [8:5]

RES0

Reserved.

VCBPR, [4]

Virtual Common Binary Point Register. The possible values are:

0x0

ICV_BPR0_EL1 determines the preemption group for virtual Group 0

interrupts only.

ICV_BPR1_EL1 determines the preemption group for virtual Group 1

interrupts.

0x1

ICV_BPR0_EL1 determines the preemption group for both virtual

Group 0 and virtual Group 1 interrupts.

Reads of ICV_BPR1_EL1 return ICV_BPR0_EL1 plus one, saturated

to 111. Writes to ICV_BPR1_EL1 are 

IGNORED

.

VFIQEn, [3]

Virtual FIQ enable. The value is:

0x1

Group 0 virtual interrupts are presented as virtual FIQs.

RES0, [2]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

452

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

VENG1, [1]

Virtual Group 1 interrupt enable. The possible values are:

0x0

Virtual Group 1 interrupts are disabled.

0x1

Virtual Group 1 interrupts are enabled.

VENG0, [0]

Virtual Group 0 interrupt enable. The possible values are:

0x0

Virtual Group 0 interrupts are disabled.

0x1

Virtual Group 0 interrupts are enabled.

Configurations

AArch64 System register ICH_VMCR_EL2 is architecturally mapped to AArch32 System

register ICH_VMCR.

If EL2 is not implemented, this register is 

RES0

 from EL3.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

3.4.45 ICH_VTR_EL2, Interrupt Controller VGIC Type Register, EL2

ICH_VTR_EL2 reports supported GIC virtualization features.

Bit field descriptions

ICH_VTR_EL2 is a 32-bit register and is part of:
• The GIC System registers functional group.
• The Virtualization registers functional group.
• The GIC host interface control registers functional group.

Figure 3-214: ICH_VTR_EL2 bit assignments

31

0

5

18

23

RES

0

4

21

PRIbits

20

ListRegs

29

PREbits

28

26 25

IDbits

22

19

TDS
nV4
A3V
SEIS

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

453

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

PRIbits, [31:29]

Priority bits. The number of virtual priority bits implemented, minus one.

0x4

Priority implemented is 5-bit.

PREbits, [28:26]

The number of virtual preemption bits implemented, minus one. The value is:

0x4

Virtual preemption implemented is 5-bit.

IDbits, [25:23]

The number of virtual interrupt identifier bits supported. The value is:

0x0

Virtual interrupt identifier bits that are implemented is 16-bit.

SEIS, [22]

SEI Support. The value is:

0x0

The virtual CPU interface logic does not support generation of SEIs.

A3V, [21]

Affinity 3 Valid. The value is:

0x1

The virtual CPU interface logic supports nonzero values of Affinity 3

in SGI generation System registers.

nV4, [20]

Direct injection of virtual interrupts not supported. The value is:

0x0

The CPU interface logic supports direct injection of virtual interrupts.

TDS, [19]

Separate trapping of Non-secure EL1 writes to ICV_DIR_EL1 supported. The value is:

0x1

Implementation supports ICH_HCR_EL2.TDIR.

RES0, [18:5]

RES0

Reserved.

ListRegs, [4:0]

0x3

The number of implemented List registers, minus one.

The core implements four list registers. Accesses to ICH_LR_EL2[x]

(x>3) in AArch64 or ICH_LR[x]/ICH_LRC[x] (x>3) are 

UNDEFINED

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

454

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Register descriptions

Configurations

AArch64 System register ICH_VTR_EL2 is architecturally mapped to AArch32 System register

ICH_VTR.

If EL2 is not implemented, all bits in this register are 

RES0

 from EL3, except for nV4, which is

RES1

 from EL3.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

455

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

4. Debug descriptions

This part describes the debug functionality of the Cortex

®

-A55 core.

4.1 Debug

This chapter describes the debug features of the core.

4.1.1 About debug methods

The core is part of a debug system and supports both self-hosted and external debug.

The following figure shows a typical external debug system.

Figure 4-1: External debug system

Debug target

Protocol 

converter

Debug host

Core

Debug

unit

Debug host

A computer, for example a personal computer, that is running a software debugger such

as the DS-5 Debugger. With the debug host, you can issue high-level commands, such as

setting a breakpoint at a certain location or examining the contents of a memory address.

Protocol converter

The debug host sends messages to the debug target using an interface such as Ethernet.

However, the debug target typically implements a different interface protocol. A device such

as DSTREAM is required to convert between the two protocols.

Debug target

The lowest level of the system implements system support for the protocol converter to

access the debug unit using the 

Advanced Peripheral Bus

 (APB) completer interface. An

example of a debug target is a development system with a test chip or a silicon part with a

core.

Debug unit

Helps debugging software that is running on the core:
• Hardware systems that are based on the core.
• Operating systems.
• Application software.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

456

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

With the debug unit, you can:
• Stop program execution.
• Examine and alter process and coprocessor state.
• Examine and alter memory and the state of the input or output peripherals.
• Restart the core.

For self-hosted debug, the debug target runs additional debug monitor software that runs on the

Cortex

®

-A55 core itself. This way, it does not require expensive interface hardware to connect a

second host computer.

4.1.2 Debug functional description

This section describes the trace, debug, and test features supported by Cortex

®

-A55. It includes

Arm

®

v8‑A Debug, CoreSight

 Debug, and cache Debug.

Arm

®

v8‑A debug architecture support

The Cortex

®

-A55 core supports the Arm

®

v8‑A debug architecture.

The core allows access to the internal debug functionality and registers either through a memory-

mapped area on the external AMBA

®

 APBv3 completer port, or by using CP14 system coprocessor

operations from software running on the core.

The core implements six hardware breakpoints, four watchpoints, and a 

Debug Communications

Channel

 (DCC). Four of the breakpoints match only against virtual address, the other two

breakpoints match against either virtual address or context ID. All watchpoints can be linked to

either of the virtual address or context-ID matching breakpoints to allow a memory request to be

trapped in a given process context.

Arm

®

v7 debug map support

For backwards compatibility, and to reduce the address space required for the

debug map, a 4k page-based memory map is also supported.

CoreSight debug

The Cortex

®

-A55 core integrates several CoreSight

 debug related components to aid system

debug in conjunction with CoreSight

 SoC.

These components include:
• Per-core 

Embedded Trace Macrocell

 (ETM).

• Per-core 

Cross Trigger Interface

 (CTI).

Cross Trigger Matrix

 (CTM).

• Debug-over-power-down support.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

457

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

The following figure shows the Cortex

®

-A55 CoreSight

 debug components.

The DAP connection is shown for completeness.

Figure 4-2: Cortex

®

-A55 debug components

Cluster

ATB

APB

Core0

CORECLK domain

ETM

Core1

CORECLK domain

ATCLK domain

PCLK domain

APB Mux

Async bridge

Async bridge

PMU

DBG

ETM

PMU

DBG

The debug components are split into two groups. Some components are in the cluster itself and

the rest are in a separate block named the DebugBlock. It allows you to put the DebugBlock in a

separate power domain and place it physically with other CoreSight

 logic in the SoC, rather than

close to the cluster.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

458

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

The connection between the cluster and the DebugBlock consists of a pair of APB interfaces,

one in each direction. All debug traffic, except the authentication interface, takes place over this

interface as read or write APB transactions. It includes register reads, writes, and CTI triggers.

All debug components are controlled through the primary Debug APB interface on the

DebugBlock, and form a standard CoreSight

 interface. Requests on this bus are decoded by the

APB decoder before being sent to the appropriate component in the DebugBlock or in the cluster.

The per-core CTIs are connected to a CoreSight

 CTM.

Each core contains an ETM, PMU, and debug component that are accessed using the debug APB

bus. This block conforms to the Arm

®

v8‑A Debug Architecture Specification.

The core supports debug-over-power-down using modules contained in the DebugBlock that

mirror key core information such as core ID. These allow the JTAG scan chain connection to be

maintained while the core is powered down.

The ETM in each core outputs trace on a 32-bit AMBA 4 ATBv1.1 interface. There is one interface

per core.

4.1.3 Debug register interfaces

The core implements the Arm

®

v8‑A Debug architecture and debug events.

They are described in the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The Debug architecture defines a set of debug registers. The debug register interfaces provide

access to these registers from:
• Software running on the core.
• An external debugger.

4.1.3.1 Core interfaces

System register access allows the core to directly access certain debug registers.

The external debug interface enables both external and self-hosted debug agents to access Debug

registers. Access to the Debug registers is partitioned as follows:

Debug registers

This function is System register based and memory-mapped. You can access the Debug

register map using the APB completer port.

Performance monitor

This function is System register based and memory-mapped. You can access the performance

monitor registers using the APB completer port.

Trace registers

This function is memory-mapped.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

459

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

4.1.3.2 Effects of resets on Debug registers

The core has the following reset signals that affect the Debug registers:

nCPUPORESET

This signal initializes the core processing logic, including the debug, ETM trace unit,

breakpoint, watchpoint logic, and performance monitors logic. This maps to a Cold reset that

covers reset of the core processing logic and the integrated debug functionality.

nCORERESET

This signal resets some of the debug and performance monitor logic. This maps to a Warm

reset that covers reset of the core processing logic.

nPRESETDBG

This signal initializes the shared debug APB, CTI, and CTM logic. This maps to an External

Debug reset that covers the resetting of the external debug interface and has no impact on

the core functionality.

4.1.3.3 External access permissions to Debug registers

External access permission to the Debug registers is subject to the conditions at the time of the

access.

The following table describes the core response to accesses through the external debug interface.

Table 4-1: External access conditions to registers

Name Condition

Description

Off

EDPRSR.PU is 0

Core power domain is completely off, or in a low-power state where the Core power

domain registers cannot be accessed.

If debug power is off, then all external debug and memory-mapped register accesses return

an error.

DLK

DoubleLockStatus() == TRUE

(EDPRSR.DLK is 1)

OS Double Lock is locked.

OSLK

OSLSR_EL1.OSLK is 1

OS Lock is locked.

EDAD

AllowExternalDebugAccess()

==FALSE

External debug access is disabled. When an error is returned because of an EDAD

condition code, and this is the highest priority error condition, EDPRSR.SDAD is set to 1.

Otherwise SDAD is unchanged.

Default -

None of the conditions apply, normal access.

The following table shows an example of external register access condition codes for access to

a performance monitor register. To determine the access permission for the register, scan the

columns from left to right. Stop at the first column a condition is true, the entry gives the access

permission of the register and scanning stops.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

460

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

Table 4-2: External register condition code example

Off

DLK

OSLK

EDAD

Default

-

-

-

-

RO

4.1.4 Debug events

A debug event can be a software debug event or a Halting debug event.

A core responds to a debug event in one of the following ways:
• Ignores the debug event.
• Takes a debug exception.
• Enters debug state.

See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for more information about the

debug events.

4.1.4.1 Watchpoint debug events

In the Cortex

®

-A55 core, watchpoint debug events are always synchronous.

Memory hint instructions and cache clean operations, except 

DC ZVA

DC IVAC

, and 

DCIMVAC

, do not

generate watchpoint debug events. Store exclusive instructions generate a watchpoint debug event

even when the check for the control of exclusive monitor fails. Atomic CAS instructions generate a

watchpoint debug event even when the compare operation fails.

For watchpoint debug events, except those resulting from cache maintenance operations, the

value reported in DFAR is guaranteed to be no lower than the address of the watchpoint location

rounded down to a multiple of 16 bytes.

4.1.4.2 Debug OS Lock

Debug OS Lock is set by the powerup reset, nCPUPORESET.

For normal behavior of debug events and Debug register accesses, Debug OS Lock must be

cleared. For more information, see the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

4.1.5 External debug interface

For information about external debug interface, including debug memory map and debug signals,

see the 

 Arm

®

 DynamIQ

 Shared Unit Technical Reference Manual

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

461

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

4.2 Performance Monitor Unit

This chapter describes the 

Performance Monitor Unit

 (PMU).

4.2.1 About the PMU

The Cortex

®

-A55 core includes performance monitors that enable you to gather various statistics

on the operation of the core and its memory system during runtime. These provide useful

information about the behavior of the core that you can use when debugging or profiling code.

The PMU provides six event counters. Each counter can count any of the events available in

the core. The absolute counts that are recorded might vary because of pipeline effects. This has

negligible effect except in cases where the counters are enabled for a very short time.

4.2.2 PMU functional description

This section describes the functionality of the PMU.

The PMU includes the following interfaces and counters:

Event interface

Events from all other units from across the design are provided to the PMU.

System register and APB interface

You can program the PMU registers using the System registers or the external APB interface.

Counters

The PMU has 32-bit counters that increment when they are enabled, based on events, and a

64-bit cycle counter.

PMU register interfaces

The Cortex

®

-A55 core supports access to the performance monitor registers from the

internal System register interface and a memory-mapped interface.

4.2.3 External register access permissions to the PMU registers

External access permission to the PMU registers is subject to the conditions at the time of the

access.

The following table describes the core response to accesses through the external debug and

memory-mapped interfaces.

Table 4-3: External register conditions

Name

Condition

Description

Off

EDPRSR.PU is 0

Core power domain is completely off, or in a low-power state where the Core power domain

registers cannot be accessed.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

462

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

Name

Condition

Description

DLK

EDPRSR.DLK is 1

OS Double Lock is locked.

OSLK

OSLSR_EL1.OSLK is 1

OS Lock is locked.

EPMAD

AllowExternalPMUAccess()

== FALSE

External performance monitors access is disabled. When an error is returned because of an

EPMAD condition code, and this is the highest priority error condition, EDPRSR.SPMAD is

set to 1. Otherwise SPMAD is unchanged.

Default -

None of the conditions apply, normal access.

The following table shows an example of external register condition codes for access to a

performance monitor register. To determine the access permission for the register, scan the

columns from left to right. Stop at the first column whose condition is true, the entry gives the

register access permission and scanning stops.

Table 4-4: External register condition code example

Off

DLK

OSLK

EPMAD

Default

-

-

-

-

RO

4.2.4 PMU events

The following table shows the events that are generated and the numbers that the PMU uses to

reference the events. The table also shows the bit position of each event on the event bus. Event

reference numbers that are not listed are reserved.

Table 4-5: PMU events

Event

number

PMU

event

bus

(to

trace)

Event mnemonic

Event name

0x00

-

SW_INCR

Instruction architecturally executed, condition code check pass, software increment.

0x01

[0]

L1I_CACHE_REFILL

Level 1 instruction cache refill.

This event counts any instruction fetch which misses in the cache.

The following instructions are not counted:

Cache maintenance instructions.

Non-cacheable accesses.

0x02

[1]

L1I_TLB_REFILL

Level 1 instruction TLB refill.

This event counts any refill of the instruction L1 TLB from the L2 TLB. This includes

refills which result in a translation fault.

The following instructions are not counted:

TLB maintenance instructions.

This event counts regardless of whether the MMU is enabled.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

463

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

Event

number

PMU

event

bus

(to

trace)

Event mnemonic

Event name

0x03

[2]

L1D_CACHE_REFILL

Level 1 data cache refill.

This event counts any load or store operation or pagewalk access which causes data

to be read from outside the L1, including accesses which do not allocate into L1.

The following instructions are not counted:

Cache maintenance instructions and prefetches.

Stores of an entire cache line, even if they make a coherency request outside the

L1.

Partial cache line writes which do not allocate into the L1 cache.

Non-cacheable accesses.

This event counts the sum of L1D_CACHE_REFILL_RD and

L1D_CACHE_REFILL_WR.

0x04

[3]

L1D_CACHE

Level 1 data cache access.

This event counts any load or store operation or pagewalk access which

looks up in the L1 data cache. In particular, any access which could count the

L1D_CACHE_REFILL event causes this event to count.

The following instructions are not counted:

Cache maintenance instructions and prefetches.

Non-cacheable accesses.

This event counts the sum of L1D_CACHE_RD and L1D_CACHE_WR.

0x05

[4]

L1D_TLB_REFILL

Level 1 data TLB refill.

This event counts any refill of the data L1 TLB from the L2 TLB. This includes refills

which result in a translation fault.

The following instructions are not counted:

TLB maintenance instructions.

This event counts regardless of whether the MMU is enabled.

0x06

[5]

LD_RETIRED

Instruction architecturally executed, condition code check pass, load.

This event counts all load and prefetch instructions.

This includes the Arm

®

v8.1-A atomic instructions, other than the ST* variants.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

464

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

Event

number

PMU

event

bus

(to

trace)

Event mnemonic

Event name

0x07

[6]

ST_RETIRED

Instruction architecturally executed, condition code check pass, store.

This event counts all store instructions and DC ZVA.

This includes all the Arm

®

v8.1-A atomic instructions.

The following instructions are not counted:

Store-Exclusive instructions which fail.

0x08

[7]

INST_RETIRED

Instruction architecturally executed.

This event counts all retired instructions, including those that fail their condition

check.

0x09

[8]

EXC_TAKEN

Exception taken.

0x0A

[9]

EXC_RETURN

Instruction architecturally executed, condition code check pass, exception return.

0x0B

[10]

CID_WRITE_RETIRED

Instruction architecturally executed, condition code check pass, write to

CONTEXTIDR.

This event only counts writes to CONTEXTIDR in AArch32, and via the

CONTEXTIDR_EL1 mnemonic in AArch64.

The following instructions are not counted:

Writes to CONTEXTIDR_EL12 and CONTEXTIDR_EL2.

0x0C

[11]

PC_WRITE_RETIRED

Instruction architecturally executed, condition code check pass, software change of

the PC.

This event counts all branches taken and popped from the branch monitor. This

excludes exception entries, debug entries, and CCFAIL branches.

0x0D

[12]

BR_IMMED_RETIRED

Instruction architecturally executed, immediate branch.

This event counts all branches decoded as immediate branches, taken or not, and

popped from the branch monitor. This excludes exception entries, debug entries, and

CCFAIL branches.

0x0E

[13]

BR_RETURN_RETIRED

Instruction architecturally executed, condition code check pass, procedure return.

0x0F

[14]

UNALIGNED_LDST_RETIRED

Instruction architecturally executed, condition code check pass, unaligned load or

store.

0x10

[15]

BR_MIS_PRED

Mispredicted or not predicted branch speculatively executed.

This event counts any predictable branch instruction which is mispredicted either due

to dynamic misprediction or because the MMU is off and the branches are statically

predicted not taken.

0x11

-

CPU_CYCLES

Cycle.

0x12

[16]

BR_PRED

Predictable branch speculatively executed.

This event counts all predictable branches.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

465

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

Event

number

PMU

event

bus

(to

trace)

Event mnemonic

Event name

0x13

[17]

MEM_ACCESS

Data memory access.

This event counts memory accesses due to load or store instructions.

The following instructions are not counted:

Instruction fetches.

Cache maintenance instructions.

Translation table walks or prefetches.

This event counts the sum of MEM_ACCESS_RD and MEM_ACCESS_WR.

0x14

[18]

L1I_CACHE

Level 1 instruction cache access.

This event counts any instruction fetch which accesses the L1 instruction cache.

The following instructions are not counted:

Cache maintenance instructions.

Non-cacheable accesses.

0x15

[19]

L1D_CACHE_WB

Level 1 data cache Write-Back.

This event counts any write back of data from the L1 data cache to L2 or L3. This

counts both victim line evictions and snoops, including cache maintenance operations.

The following instructions are not counted:

Invalidations which do not result in data being transferred out of the L1.

Full-line writes which write to L2 without writing L1, such as write-streaming

mode.

0x16

[20]

L2D_CACHE

Level 2 data cache access.

If the core is configured with a per-core L2 cache:

This event counts any transaction from L1 which looks up in the L2 cache, and

any write-back from the L1 to the L2. Snoops from outside the core and cache

maintenance operations are not counted.

If the core is not configured with a per-core L2 cache:

This event counts the cluster cache event, as defined by L3D_CACHE.

If there is neither a per-core cache nor a cluster cache configured, then this event

is not implemented.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

466

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

Event

number

PMU

event

bus

(to

trace)

Event mnemonic

Event name

0x17

[21]

L2D_CACHE_REFILL

Level 2 data cache refill.

If the core is configured with a per-core L2 cache:

This event counts any cacheable transaction from L1 which causes data to be

read from outside the core. L2 refills caused by stashes and prefetches that target

this level of cache should not be counted.

If the core is not configured with a per-core L2 cache:

This event counts the cluster cache event, as defined by L3D_CACHE_REFILL.

If there is neither a per-core cache nor a cluster cache configured, then this event

is not implemented.

0x18

[22]

L2D_CACHE_WB

Level 2 data cache Write-Back.

If the core is configured with a per-core L2 cache:

This event counts any write back of data from the L2 cache to outside the core.

This includes snoops to the L2 which return data, regardless of whether they

cause an invalidation. Invalidations from the L2 which do not write data outside

of the core and snoops which return data from the L1 are not counted.

If the core is not configured with a per-core L2 cache, this event is not

implemented.

0x19

[23]

BUS_ACCESS

Bus access.

This event counts for every beat of data transferred over the data channels between

the core and the SCU. If both read and write data beats are transferred on a given

cycle, this event is counted twice on that cycle.

This event counts the sum of BUS_ACCESS_RD and BUS_ACCESS_WR.

0x1A

[24]

MEMORY_ERROR

Local memory error.

This event counts any correctable or uncorrectable memory error (ECC or parity) in

the protected core RAMs.

0x1B

-

INT_SPEC

Operation speculatively executed.

This event duplicates INST_RETIRED.

0x1C

[25]

TTBR_WRITE_RETIRED

Instruction architecturally executed, condition code check pass, write to TTBR.

This event only counts writes to TTBR0/TTBR1 in AArch32 and TTBR0_EL1/

TTBR1_EL1 in AArch64.

The following instructions are not counted:

Accesses to TTBR0_EL12/TTBR1_EL12 or TTBR0_EL2/TTBR1_EL2.

0x1D

-

BUS_CYCLES

Bus cycles.

This event duplicates CPU_CYCLES.

0x1E

-

CHAIN

Odd performance counter chain mode.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

467

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

Event

number

PMU

event

bus

(to

trace)

Event mnemonic

Event name

0x20

[26]

L2D_CACHE_ALLOCATE

Level 2 data cache allocation without refill.

If the core is configured with a per-core L2 cache:

This event counts any full cache line write into the L2 cache which does not

cause a linefill, including write-backs from L1 to L2 and full-line writes which do

not allocate into L1.

If the core is not configured with a per-core L2 cache:

This event counts the cluster cache event, as defined by

L3D_CACHE_ALLOCATE.

If there is neither a per-core cache nor a cluster cache configured, this event is

not implemented.

0x21

[27]

BR_RETIRED

Instruction architecturally executed, branch.

This event counts all branches, taken or not, popped from the branch monitor. This

excludes exception entries, debug entries, and CCFAIL branches. In the Cortex

®

-A55

core, an ISB is a branch, and even micro architectural ISBs are counted.

0x22

[28]

BR_MIS_PRED_RETIRED

Instruction architecturally executed, mispredicted branch.

This event counts any branch counted by BR_RETIRED which is not correctly

predicted and causes a pipeline flush.

0x23

[29]

STALL_FRONTEND

No operation issued because of the frontend.

The counter counts on any cycle when no operations are issued due to the instruction

queue being empty.

0x24

[30]

STALL_BACKEND

No operation issued because of the backend.

The counter counts on any cycle when no operations are issued due to a pipeline stall.

0x25

[31]

L1D_TLB

Level 1 data TLB access.

This event counts any load or store operation which accesses the data L1 TLB. If both

a load and a store are executed on a cycle, this event counts twice.

This event counts regardless of whether the MMU is enabled.

0x26

[32]

L1I_TLB

Level 1 instruction TLB access.

This event counts any instruction fetch which accesses the instruction L1 TLB.

This event counts regardless of whether the MMU is enabled.

0x29

[33]

L3D_CACHE_ALLOCATE

Attributable Level 3 unified cache allocation without refill.

If the core is configured with a per-core L2 cache and the cluster is configured

with an L3 cache:

This event counts any full cache line write into the L3 cache which does not

cause a linefill, including write-backs from L2 to L3 and full-line writes which do

not allocate into L2.

If either the core is configured without a per-core L2 or the cluster is configured

without an L3 cache, this event is not implemented.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

468

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

Event

number

PMU

event

bus

(to

trace)

Event mnemonic

Event name

0x2A

[34]

L3D_CACHE_REFILL

Attributable Level 3 unified cache refill.

If the core is configured with a per-core L2 cache and the cluster is configured

with an L3 cache:

This event counts for any cacheable read transaction returning data from the

SCU for which the data source was outside the cluster. Transactions such as

ReadUnique are counted here as “read” transactions, even though they can be

generated by store instructions.

If either the core is configured without a per-core L2 or the cluster is configured

without an L3 cache, this event is not implemented.

0x2B

[35]

L3D_CACHE

Attributable Level 3 unified cache access.

If the core is configured with a per-core L2 cache and the cluster is configured

with an L3 cache:

This event counts for any cacheable read transaction returning data from the

SCU, or for any cacheable write to the SCU.

If either the core is configured without a per-core L2 or the cluster is configured

without an L3 cache, this event is not implemented.

0x2D

[36]

L2D_TLB_REFILL

Attributable Level 2 unified TLB refill.

This event counts on any refill of the L2 TLB, caused by either an instruction or data

access.

This event does not count if the MMU is disabled.

0x2F

[37]

L2D_TLB

Attributable Level 2 unified TLB access.

This event counts on any access to the L2 TLB (caused by a refill of any of the L1

TLBs).

This event does not count if the MMU is disabled.

0x34

[39]

DTLB_WALK

Access to data TLB that caused a page table walk.

This event counts on any data access which causes L2D_TLB_REFILL to count.

0x35

[40]

ITLB_WALK

Access to instruction TLB that caused a page table walk.

This event counts on any instruction access which causes L2D_TLB_REFILL to count.

0x36

[41]

LL_CACHE_RD

Last level cache access, read.

If CPUECTLR.EXTLLC is set:

This event counts any cacheable read transaction which returns a data source of

"interconnect cache".

If CPUECTLR.EXTLLC is not set:

This event is a duplicate of the L*D_CACHE_RD event corresponding to the

last level of cache implemented – L3D_CACHE_RD if both per-core L2 and

cluster L3 are implemented, L2D_CACHE_RD if only one is implemented, or

L1D_CACHE_RD if neither is implemented.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

469

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

Event

number

PMU

event

bus

(to

trace)

Event mnemonic

Event name

0x37

[42]

LL_CACHE_MISS_RD

Last level cache miss, read.

If CPUECTLR.EXTLLC is set:

This event counts any cacheable read transaction which returns a data source of

"DRAM", "remote" or "inter-cluster peer".

If CPUECTLR.EXTLLC is not set:

This event is a duplicate of the L*D_CACHE_REFILL_RD event corresponding

to the last level of cache implemented – L3D_CACHE_REFILL_RD if both per-

core L2 and cluster L3 are implemented, L2D_CACHE_REFILL_RD if only one is

implemented, or L1D_CACHE_REFILL_RD if neither is implemented.

0x38

[38]

REMOTE_ACCESS_RD

Access to another socket in a multi-socket system, read.

This event counts any read transaction which returns a data source of "remote".

0x40

-

L1D_CACHE_RD

Level 1 data cache access, read.

This event counts any load operation or pagewalk access which looks up in the L1

data cache. In particular, any access which could count the L1D_CACHE_REFILL_RD

event causes this event to count.

The following instructions are not counted:

Cache maintenance instructions and prefetches.

Non-cacheable accesses.

0x41

-

L1D_CACHE_WR

Level 1 data cache access, write.

This event counts any store operation which looks up in the L1 data cache. In

particular, any access which could count the L1D_CACHE_REFILL event causes this

event to count.

The following instructions are not counted:

Cache maintenance instructions and prefetches.

Non-cacheable accesses.

0x42

-

L1D_CACHE_REFILL_RD

Level 1 data cache refill, read.

This event counts any load operation or pagewalk access which causes data to be

read from outside the L1, including accesses which do not allocate into L1.

The following instructions are not counted:

Cache maintenance instructions and prefetches.

Non-cacheable accesses.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

470

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

Event

number

PMU

event

bus

(to

trace)

Event mnemonic

Event name

0x43

-

L1D_CACHE_REFILL_WR

Level 1 data cache refill, write.

This event counts any store operation which causes data to be read from outside the

L1, including accesses which do not allocate into L1.

The following instructions are not counted:

Cache maintenance instructions and prefetches.

Stores of an entire cache line, even if they make a coherency request outside the

L1.

Partial cache line writes which do not allocate into the L1 cache.

Non-cacheable accesses.

0x44

-

L1D_CACHE_REFILL_INNER

Level 1 data cache refill, inner.

This event counts any L1 D-cache linefill (as counted by L1D_CACHE_REFILL) which

hits in the L2 cache, L3 cache or another core in the cluster.

0x45

-

L1D_CACHE_REFILL_OUTER

Level 1 data cache refill, outer.

This event counts any L1 D-cache linefill (as counted by L1D_CACHE_REFILL) which

does not hit in the L2 cache, L3 cache or another core in the cluster, and instead

obtains data from outside the cluster.

0x50

-

L2D_CACHE_RD

Level 2 cache access, read.

If the core is configured with a per-core L2 cache:

This event counts any read transaction from L1 which looks up in the L2 cache.

Snoops from outside the core are not counted.

If the core is configured without a per-core L2 cache:

This event counts the cluster cache event, as defined by L3D_CACHE_RD.

If there is neither a per-core cache nor a cluster cache configured, this event is

not implemented.

0x51

-

L2D_CACHE_WR

Level 2 cache access, write.

If the core is configured with a per-core L2 cache:

This event counts any write transaction from L1 which looks up in the L2 cache

or any write-back from L1 which allocates into the L2 cache. Snoops from

outside the core are not counted.

If the core is configured without a per-core L2 cache:

This event counts the cluster cache event, as defined by L3D_CACHE_WR.

If there is neither a per-core cache nor a cluster cache configured, this event is

not implemented.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

471

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

Event

number

PMU

event

bus

(to

trace)

Event mnemonic

Event name

0x52

-

L2D_CACHE_REFILL_RD

Level 2 cache refill, read.

If the core is configured with a per-core L2 cache:

This event counts any cacheable read transaction from L1 which causes data

to be read from outside the core. L2 refills caused by stashes into L2 should

not be counted. Transactions such as ReadUnique are counted here as “read”

transactions, even though they can be generated by store instructions.

If the core is configured without a per-core L2 cache:

This event counts the cluster cache event, as defined by

L3D_CACHE_REFILL_RD.

If there is neither a per-core cache nor a cluster cache configured, this event is

not implemented.

0x53

-

L2D_CACHE_REFILL_WR

Level 2 cache refill, write.

If the core is configured with a per-core L2 cache:

This event counts any write transaction from L1 which causes data to be read

from outside the core. L2 refills caused by stashes into L2 should not be counted.

Transactions such as ReadUnique are not counted as write transactions.

If the core is configured without a per-core L2 cache:

This event counts the cluster cache event, as defined by

L3D_CACHE_REFILL_WR.

If there is neither a per-core cache nor a cluster cache configured, this event is

not implemented.

0x60

-

BUS_ACCESS_RD

Bus access, read.

This event counts for every beat of data transferred over the read data channel

between the core and the SCU.

0x61

-

BUS_ACCESS_WR

Bus access, write.

This event counts for every beat of data transferred over the write data channel

between the core and the SCU.

0x66

-

MEM_ACCESS_RD

Data memory access, read.

This event counts memory accesses due to load instructions.

The following instructions are not counted:

Instruction fetches.

Cache maintenance instructions.

Translation table walks.

Prefetches.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

472

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

Event

number

PMU

event

bus

(to

trace)

Event mnemonic

Event name

0x67

-

MEM_ACCESS_WR

Data memory access, write.

This event counts memory accesses due to store instructions.

The following instructions are not counted:

Instruction fetches.

Cache maintenance instructions.

Translation table walks.

Prefetches.

0x70

-

LD_SPEC

Operation speculatively executed, load.

This event duplicates LD_RETIRED.

0x71

-

ST_SPEC

Operation speculatively executed, store.

This event duplicates ST_RETIRED.

0x72

-

LDST_SPEC

Operation speculatively executed, load or store.

This event counts the sum of LD_SPEC and ST_SPEC.

0x73

-

DP_SPEC

Operation speculatively executed, integer data processing.

This event counts retired integer data-processing instructions.

0x74

-

ASE_SPEC

Operation speculatively executed, Advanced SIMD instruction.

This event counts retired Advanced SIMD instructions.

0x75

-

VFP_SPEC

Operation speculatively executed, floating-point instruction.

This event counts retired floating-point instructions.

0x76

-

PC_WRITE_SPEC

Operation speculatively executed, software change of the PC.

This event counts retired branch instructions.

0x77

-

CRYPTO_SPEC

Operation speculatively executed, Cryptographic instruction.

This event counts retired Cryptographic instructions.

0x78

-

BR_IMMED_SPEC

Branch speculatively executed, immediate branch.

This event duplicates BR_IMMED_RETIRED.

0x79

-

BR_RETURN_SPEC

Branch speculatively executed, procedure return.

This event duplicates BR_RETURN_RETIRED.

0x7A

-

BR_INDIRECT_SPEC

Branch speculatively executed, indirect branch.

This event counts retired indirect branch instructions.

0x86

-

EXC_IRQ

Exception taken, IRQ.

0x87

-

EXC_FIQ

Exception taken, FIQ.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

473

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

Event

number

PMU

event

bus

(to

trace)

Event mnemonic

Event name

0xA0

-

L3D_CACHE_RD

Attributable Level 3 unified cache access, read.

This event counts for any cacheable read transaction returning data from the SCU.

If either the core is configured without a per-core L2 or the cluster is configured

without an L3 cache, this event is not implemented.

0xA2

-

L3D_CACHE_REFILL_RD

Attributable Level 3 unified cache refill, read.

This event duplicates L3D_CACHE_REFILL.

If either the core is configured without a per-core L2 or the cluster is configured

without an L3 cache, this event is not implemented.

0xC0

-

L3D_CACHE_REFILL_PREFETCH Level 3 cache refill due to prefetch.

This event counts any linefills from the hardware prefetcher which cause an allocation

into the L3 cache.

Note:

It might not be possible to both distinguish hardware vs software prefetches and

also which prefetches cause an allocation. If so, only hardware prefetches should be

counted, regardless of whether they allocate.

If either the core is configured without a per-core L2 or the cluster is configured

without an L3 cache, this event is not implemented.

0xC1

-

L2D_CACHE_REFILL_PREFETCH Level 2 cache refill due to prefetch.

If the core is configured with a per-core L2 cache:

This event does not count.

If the core is configured without a per-core L2 cache:

This event counts the cluster cache event, as defined by

L3D_CACHE_REFILL_PREFETCH.

If there is neither a per-core cache nor a cluster cache configured, this event is

not implemented.

0xC2

-

L1D_CACHE_REFILL_PREFETCH Level 1 data cache refill due to prefetch.

This event counts any linefills from the prefetcher which cause an allocation into the

L1 D-cache.

0xC3

-

L2D_WS_MODE

Level 2 cache write streaming mode.

This event counts for each cycle where the core is in write-streaming mode and not

allocating writes into the L2 cache.

0xC4

-

L1D_WS_MODE_ENTRY

Level 1 data cache entering write streaming mode.

This event counts for each entry into write-streaming mode.

0xC5

-

L1D_WS_MODE

Level 1 data cache write streaming mode.

This event counts for each cycle where the core is in write-streaming mode and not

allocating writes into the L1 D-cache.

0xC6

-

PREDECODE_ERROR

Predecode error.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

474

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

Event

number

PMU

event

bus

(to

trace)

Event mnemonic

Event name

0xC7

-

L3D_WS_MODE

Level 3 cache write streaming mode.

This event counts for each cycle where the core is in write-streaming mode and not

allocating writes into the L3 cache.

0xC9

-

BR_COND_PRED

Predicted conditional branch executed.

This event counts when any branch which can be predicted by the conditional

predictor is retired. This event still counts when branch prediction is disabled due to

the MMU being off.

0xCA

-

BR_INDIRECT_MIS_PRED

Indirect branch mis-predicted.

This event counts when any indirect branch which can be predicted by the BTAC is

retired, and has mis-predicted for either the condition or the address. This event still

counts when branch prediction is disabled due to the MMU being off.

0xCB

-

BR_INDIRECT_ADDR_MIS_PRED Indirect branch mis-predicted due to address mis-compare.

This event counts when any indirect branch which can be predicted by the BTAC is

retired, was taken and correctly predicted the condition, and has mis-predicted the

address. This event still counts when branch prediction is disabled due to the MMU

being off.

0xCC

-

BR_COND_MIS_PRED

Conditional branch mis-predicted.

This event counts when any branch which can be predicted by the conditional

predictor is retired, and has mis-predicted the condition. This event still counts when

branch prediction is disabled due to the MMU being off. Conditional indirect branches

which correctly predicted the condition but mis-predicted on the address do not

count this event.

0xCD

-

BR_INDIRECT_ADDR_PRED

Indirect branch with predicted address executed.

This event counts when any indirect branch which can be predicted by the BTAC is

retired, was taken and correctly predicted the condition. This event still counts when

branch prediction is disabled due to the MMU being off.

0xCE

-

BR_RETURN_ADDR_PRED

Procedure return with predicted address executed.

This event counts when any procedure return which can be predicted by the CRS is

retired, was taken and correctly predicted the condition. This event still counts when

branch prediction is disabled due to the MMU being off.

0xCF

-

BR_RETURN_ADDR_MIS_PRED Procedure return mis-predicted due to address mis-compare.

This event counts when any procedure return which can be predicted by the CRS is

retired, was taken and correctly predicted the condition, and has mis-predicted the

address. This event still counts when branch prediction is disabled due to the MMU

being off.

0xD0

-

L2D_LLWALK_TLB

Level 2 TLB last-level walk cache access.

This event does not count if the MMU is disabled.

0xD1

-

L2D_LLWALK_TLB_REFILL

Level 2 TLB last-level walk cache refill.

This event does not count if the MMU is disabled.

0xD2

-

L2D_L2WALK_TLB

Level 2 TLB level-2 walk cache access.

This event counts accesses to the level-2 walk cache where the last-level walk cache

has missed. The event only counts when the translation regime of the pagewalk uses

level 2 descriptors. This event does not count if the MMU is disabled.

0xD3

-

L2D_L2WALK_TLB_REFILL

Level 2 TLB level-2 walk cache refill.

This event does not count if the MMU is disabled.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

475

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

Event

number

PMU

event

bus

(to

trace)

Event mnemonic

Event name

0xD4

-

L2D_S2_TLB

Level 2 TLB IPA cache access.

This event counts on each access to the IPA cache.

If a single pagewalk needs to make multiple accesses to the IPA cache, each

access is counted.

If stage 2 translation is disabled, this event does not count.

0xD5

-

L2D_S2_TLB_REFILL

Level 2 TLB IPA cache refill.

This event counts on each refill of the IPA cache.

If a single pagewalk needs to make multiple accesses to the IPA cache, each

access which causes a refill is counted.

If stage 2 translation is disabled, this event does not count.

0xD6

-

L2D_CACHE_STASH_DROPPED Level 2 cache stash dropped.

This event counts on each stash request received from the interconnect or ACP, that

is targeting L2 and gets dropped due to lack of buffer space to hold the request.

0xE1

-

STALL_FRONTEND_CACHE

No operation issued due to the frontend, cache miss.

This event counts every cycle the DPU IQ is empty and there is an instruction cache

miss being processed.

0xE2

-

STALL_FRONTEND_TLB

No operation issued due to the frontend, TLB miss.

This event counts every cycle the DPU IQ is empty and there is an instruction L1 TLB

miss being processed.

0xE3

-

STALL_FRONTEND_PDERR

No operation issued due to the frontend, pre-decode error.

This event counts every cycle the DPU IQ is empty and there is a pre-decode error

being processed.

0xE4

-

STALL_BACKEND_ILOCK

No operation issued due to the backend interlock.

This event counts every cycle that issue is stalled and there is an interlock. Stall cycles

due to a stall in Wr (typically awaiting load data) are excluded.

0xE5

-

STALL_BACKEND_ILOCK_AGU

No operation issued due to the backend, interlock, AGU.

This event counts every cycle that issue is stalled and there is an interlock that is due

to a load/store instruction waiting for data to calculate the address in the AGU. Stall

cycles due to a stall in Wr (typically awaiting load data) are excluded.

0xE6

-

STALL_BACKEND_ILOCK_FPU

No operation issued due to the backend, interlock, FPU.

This event counts every cycle that issue is stalled and there is an interlock that is

due to an FPU/NEON instruction. Stall cycles due to a stall in the Wr stage (typically

awaiting load data) are excluded.

0xE7

-

STALL_BACKEND_LD

No operation issued due to the backend, load.

This event counts every cycle there is a stall in the Wr stage due to a load.

0xE8

-

STALL_BACKEND_ST

No operation issued due to the backend, store.

This event counts every cycle there is a stall in the Wr stage due to a store.

0xE9

-

STALL_BACKEND_LD_CACHE

No operation issued due to the backend, load, cache miss.

This event counts every cycle there is a stall in the Wr stage due to a load which is

waiting on data (due to missing the cache or being non-cacheable).

0xEA

-

STALL_BACKEND_LD_TLB

No operation issued due to the backend, load, TLB miss.

This event counts every cycle there is a stall in the Wr stage due to a load which has

missed in the L1 TLB.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

476

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

Event

number

PMU

event

bus

(to

trace)

Event mnemonic

Event name

0xEB

-

STALL_BACKEND_ST_STB

No operation issued due to the backend, store, STB full.

This event counts every cycle there is a stall in the Wr stage due to a store which is

waiting due to the STB being full.

0xEC

-

STALL_BACKEND_ST_TLB

No operation issued due to the backend, store, TLB miss.

This event counts every cycle there is a stall in the Wr stage due to a store which has

missed in the L1 TLB.

L2 and L3 cache events (L2D_CACHE*, L3D_CACHE*)

The behavior of these events depends on the configuration of the core.

If the private L2 cache is present, the L2D_CACHE* events count the activity in the private L2

cache, and the L3D_CACHE* events count the activity in the DSU L3 cache (if present).

If the private L2 cache is not present but the DSU L3 cache is present, the L2D_CACHE*

events count activity in the DSU L3 cache and the L3D_CACHE* events do not count. The

L2D_CACHE_WB, L2D_CACHE_WR and L2D_CACHE_REFILL_WR events do not count in this

configuration.

If neither the private L2 cache nor the DSU L3 cache are present, neither the L2D_CACHE* or

L3D_CACHE* events will count.

Last Level cache events (LL_CACHE_*)

The behavior of these events depends on the configuration of the core and the value of the

CPUECTLR.EXTLLC/CPUECTLR_EL1.EXTLLC bit.

If the EXTLLC bit is 0:

These events count activity in the last level of data cache implemented in the core. This is the

DSU L3 cache if it is present, else the private L2 cache if it is present, otherwise the L1 data

cache.

If the EXTLLC bit is 1:

These events count activity in a last level cache outside the core (if present). These events

may not count in all implementations.

4.2.5 PMU interrupts

The Cortex

®

-A55 core asserts the nPMUIRQ signal when the PMU generates an interrupt.

You can route this signal to an external interrupt controller for prioritization and masking. This is the

only mechanism that signals this interrupt to the core.

This interrupt is also driven as a trigger input to the CTI. See the 

 Arm

®

 DynamIQ

 Shared Unit

Technical Reference Manual

 for more information.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

477

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

4.2.6 Exporting PMU events

Some of the PMU events are exported to the ETM trace unit to be monitored.

The PMUEVENT bus is not exported to external components. This is because the

event bus cannot safely cross an asynchronous boundary when events can be

generated on every cycle.

4.3 Embedded Trace Macrocell

This chapter describes the 

Embedded Trace Macrocell

 (ETM) for the Cortex

®

-A55 core.

4.3.1 About the ETM

This module performs real-time instruction flow tracing that complies with the ETM architecture,

ETMv4.2. As a CoreSight component, it is part of the Arm real-time debug solution.

4.3.2 ETM trace unit generation options and resources

The following table shows the trace generation options that are implemented in the Cortex

®

-A55

ETM trace unit.

Table 4-6: ETM trace unit generation options implemented

Description

Configuration

Instruction address size in bytes

8

Data address size in bytes

0

Data value size in bytes

0

Virtual Machine ID size in bytes

4

Context ID size in bytes

4

Support for conditional instruction tracing

Not implemented

Support for tracing of data

Not implemented

Support for tracing of load and store instructions as P0 elements

Not implemented

Support for cycle counting in the instruction trace

Implemented

Support for branch broadcast tracing

Implemented

Number of events supported in the trace

4

Return stack support

Implemented

Tracing of SError exception support

Implemented

Instruction trace cycle counting minimum threshold

1

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

478

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

Description

Configuration

Size of Trace ID

7 bits

Synchronization period support

read/write

Global timestamp size

64 bits

Number of cores available for tracing

1

ATB trigger support

Implemented

Low power behavior override

Implemented

Stall control support

Implemented

Support for overflow avoidance

Not implemented

Support for using CONTEXTIDR_EL2 in VMID comparator

Implemented

The following table shows the resources that are implemented in the Cortex

®

-A55 ETM trace unit.

Table 4-7: ETM trace unit resources implemented

Description

Configuration

Number of resource selection pairs implemented

8

Number of external input selectors implemented

4

Number of external inputs implemented

47, 4 CTI + 43 PMU

Number of counters implemented

2

Reduced function counter implemented

Not implemented

Number of sequencer states implemented

4

Number of Virtual Machine ID comparators implemented

1

Number of Context ID comparators implemented

1

Number of address comparator pairs implemented

4

Number of single-shot comparator controls

1

Number of core comparator inputs implemented

0

Data address comparisons implemented

Not implemented

Number of data value comparators implemented

0

4.3.3 ETM trace unit functional description

This section describes the functionality of the ETM trace unit.

The following figure shows the main functional blocks of the ETM trace unit.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

479

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

Figure 4-3: ETM functional blocks

Trace out

FIFO

Debug APB

Filtering and triggering resources

Trace generation

Core interface 

block

Core

interface 

ATB

CORECLK

ETM

Core interface

This block monitors the behavior of the core and generates P0 elements that are essentially

executed branches and exceptions traced in program order.

Trace generation

The trace generation block generates various trace packets based on P0 elements.

Filtering and triggering resources

You can limit the amount of trace data generated by the ETM through the process of filtering.

For example, generating trace only in a certain address range. More complicated logic

analyzer style filtering options are also available.

The ETM trace unit can also generate a trigger that is a signal to the Trace Capture Device to

stop capturing trace.

FIFO

The trace generated by the ETM trace unit is in a highly-compressed form.

The FIFO enables trace bursts to be flattened out. When the FIFO becomes full, the FIFO

signals an overflow. The trace generation logic does not generate any new trace until the

FIFO is emptied. This causes a gap in the trace when viewed in the debugger.

Trace out

Trace from FIFO is output on the AMBA ATB interface.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

480

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

4.3.4 Resetting the ETM

The reset for the ETM trace unit is the same as a Cold reset for the core.

The ETM trace unit is not reset when Warm reset is applied to the core so that tracing through

Warm core reset is possible.

If the ETM trace unit is reset, tracing stops until the ETM trace unit is reprogrammed and re-

enabled. However, if the core is reset using Warm reset, the last few instructions that are provided

by the core before the reset might not be traced.

4.3.5 Programming and reading ETM trace unit registers

You program and read the ETM trace unit registers using the Debug APB interface.

The core does not have to be in debug state when you program the ETM trace unit registers.

When you are programming the ETM trace unit registers, you must enable all the changes at the

same time. Otherwise, if you program the counter, it might start to count based on incorrect events

before the correct setup is in place for the trigger condition.

To disable the ETM trace unit, use the TRCPRGCTLR.EN bit.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

481

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

Figure 4-4: Programming ETM trace unit registers

Set main enable bit in 

TRCPRGCTLR to 0b0

Read TRCSTATR 

Is TRCSTATR  Idle 

0b1? 

Set main enable bit in 

TRCPRGCTLR to 0b1

Is TRCSTATR  Idle 

0b0? 

Yes

Yes

No

No

Read TRCSTATR 

End

Program all trace 

registers required

Start

4.3.6 ETM trace unit register interfaces

The Cortex

®

-A55 core supports only memory-mapped interface to trace registers.

See the 

 Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

 for information on the

behaviors on register accesses for different trace unit states and the different access mechanisms.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

482

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug descriptions

4.3.7 Interaction with the PMU and Debug

This section describes the interaction with the PMU and the effect of debug double lock on trace

register access.

Interaction with the PMU

The Cortex

®

-A55 core includes a PMU that enables events, such as cache misses and instructions

executed, to be counted over a period of time.

The PMU and ETM trace unit function together.

Use of PMU events by the ETM trace unit

The PMU architectural events described in 

4.2.4 PMU events

 on page 463 are available to the

ETM trace unit through the extended input facility.

See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for more information about

PMU events.

The ETM trace unit uses four extended external input selectors to access the PMU events. Each

selector can independently select one of the PMU events, that are then active for the cycles

where the relevant events occur. These selected events can then be accessed by any of the event

registers within the ETM trace unit. The PMU event table describes the PMU events.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

483

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5. Debug registers

This part describes the debug registers of the Cortex

®

-A55 core. Registers access information is

provided in the registers summary topics.

5.1 AArch32 Debug Registers

This chapter describes the debug registers in the AArch32 Execution state and shows examples of

how to use them.

5.1.1 AArch32 debug register summary

The following table summarizes the 32-bit and 64-bit debug control registers that are accessible in

the AArch32 Execution state from the internal CP14 interface. These registers are accessed by the

MCR

 and 

MRC

 instructions in the order of CRn, op2, CRm, Op1 or 

MCRR

 and 

MRRC

 instructions in the

order of CRm, Op1.

For those registers not described in this chapter, see the 

Arm

®

 Architecture Reference Manual for

A-profile architecture

. See the 

5.3.1 Memory-mapped Debug register summary

 on page 508 for

a complete list of registers accessible from the internal memory-mapped interface or the external

debug interface.

Table 5-1: AArch32 debug register summary

CRn Op2 CRm Op1 Name

Type

Reset

Description

c0

0

c0

0

DBGDIDR

RO

0x3518D000

5.1.5 DBGDIDR, Debug ID Register

 on page 491

c0

0

c1

0

DBGDSCRint

RO

0x00030000

Debug Status and Control Register, Internal View

c0

0

c2

0

DBGDCCINT

RW

0x00000000

Debug Comms Channel Interrupt Enable Register

c0

0

c5

0

DBGDTRTXint

WO

-

Debug Data Transfer Register, Transmit, Internal View

c0

0

c5

0

DBGDTRRXint

RO

0x00000000

Debug Data Transfer Register, Receive, Internal View

c0

0

c6

0

DBGWFAR

5

RW

-

Watchpoint Fault Address Register, 

RES0

c0

0

c7

0

DBGVCR

RW

0x00000000

Debug Vector Catch Register

c0

2

c0

0

DBGDTRRXext

RW

0x00000000

Debug Data Transfer Register, Receive, External View

c0

2

c2

0

DBGDSCRext

RW

0x00030000

Debug Status and Control Register, External View

c0

2

c3

0

DBGDTRTXext

RW

0x00000000

Debug Data Transfer Register, Transmit, External View

c0

2

c6

0

DBGOSECCR

RW

0x00000000

Debug OS Lock Exception Catch Control Register

c0

4

c0

0

DBGBVR0

RW

XXXXXXXX

6

Debug Breakpoint Value Register 0

c0

4

c1

0

DBGBVR1

RW

XXXXXXXX

6

Debug Breakpoint Value Register 1

5

Previously returned information about the address of the instruction that accessed a watchpoint address. This

register is now deprecated and is 

RES0

.

6

The actual reset value is {30{1'bx}},2'b0

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

484

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

CRn Op2 CRm Op1 Name

Type

Reset

Description

c0

4

c2

0

DBGBVR2

RW

XXXXXXXX

6

Debug Breakpoint Value Register 2

c0

4

c3

0

DBGBVR3

RW

XXXXXXXX

6

Debug Breakpoint Value Register 3

c0

4

c4

0

DBGBVR4

RW

XXXXXXXX

6

Debug Breakpoint Value Register 4

c0

4

c5

0

DBGBVR5

RW

XXXXXXXX

6

Debug Breakpoint Value Register 5

c0

5

c0

0

DBGBCR0

RW

00XXXXXX

7

Debug Breakpoint Control Register 0

See 

5.2.2 DBGBCRn_EL1, Debug Breakpoint Control

Registers, EL1

 on page 497.

c0

5

c1

0

DBGBCR1

RW

00XXXXXX

7

Debug Breakpoint Control Register 1

See 

5.2.2 DBGBCRn_EL1, Debug Breakpoint Control

Registers, EL1

 on page 497.

c0

5

c2

0

DBGBCR2

RW

00XXXXXX

7

Debug Breakpoint Control Register 2

See 

5.2.2 DBGBCRn_EL1, Debug Breakpoint Control

Registers, EL1

 on page 497.

c0

5

c3

0

DBGBCR3

RW

00XXXXXX

7

Debug Breakpoint Control Register 3

See 

5.2.2 DBGBCRn_EL1, Debug Breakpoint Control

Registers, EL1

 on page 497.

c0

5

c4

0

DBGBCR4

RW

00XXXXXX

8

Debug Breakpoint Control Register 4

See 

5.2.2 DBGBCRn_EL1, Debug Breakpoint Control

Registers, EL1

 on page 497.

c0

5

c5

0

DBGBCR5

RW

00XXXXXX

8

Debug Breakpoint Control Register 5

See 

5.2.2 DBGBCRn_EL1, Debug Breakpoint Control

Registers, EL1

 on page 497.

c0

6

c0

0

DBGWVR0

RW

XXXXXXXX

6

Debug Watchpoint Value Register 0

c0

6

c1

0

DBGWVR1

RW

XXXXXXXX

6

Debug Watchpoint Value Register 1

c0

6

c2

0

DBGWVR2

RW

XXXXXXXX

6

Debug Watchpoint Value Register 2

c0

6

c3

0

DBGWVR3

RW

XXXXXXXX

6

Debug Watchpoint Value Register 3

c0

7

c0

0

DBGWCR0

RW

XXXXXXXX

9

Watchpoint Control Register 0

See 

5.2.4 DBGWCRn_EL1, Debug Watchpoint Control

Registers, EL1

 on page 501.

c0

7

c1

0

DBGWCR1

RW

XXXXXXXX

9

Watchpoint Control Register 1

See 

5.2.4 DBGWCRn_EL1, Debug Watchpoint Control

Registers, EL1

 on page 501.

7

The actual reset value is 32'b000000000x0x0x0xxx0000xxxxx00xx0.

8

The actual reset value is 32'b00000000xxxx0x0xxx0000xxxxx00xx0.

9

The actual reset value is 32'b000xxxxx000x0x0xxxxxxxxxxxxxxxx0.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

485

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

CRn Op2 CRm Op1 Name

Type

Reset

Description

c0

7

c2

0

DBGWCR2

RW

XXXXXXXX

9

Watchpoint Control Register 2

See 

5.2.4 DBGWCRn_EL1, Debug Watchpoint Control

Registers, EL1

 on page 501.

c0

7

c3

0

DBGWCR3

RW

XXXXXXXX

9

Watchpoint Control Register 3

See 

5.2.4 DBGWCRn_EL1, Debug Watchpoint Control

Registers, EL1

 on page 501.

c1

0

c0

0

DBGDRAR[31:0]

RO

-

-

-

c1

-

DBGDRAR[63:0]

RO

-

Debug ROM Address Register, 

RES0

c1

1

c4

0

DBGBXVR4

RW

XXXXXXXX

10

Debug Breakpoint Extended Value Register 4

c1

1

c5

0

DBGBXVR5

RW

XXXXXXXX

10

Debug Breakpoint Extended Value Register 5

c1

4

c0

0

DBGOSLAR

WO

-

Debug OS Lock Access Register

c1

4

c1

0

DBGOSLSR

RO

0x0000000A

Debug OS Lock Status Register

c1

4

c3

0

DBGOSDLR

RW

0x00000000

Debug OS Double Lock Register

c1

4

c4

0

DBGPRCR

RW

11

Debug Power/Reset Control Register

c2

2

c0

0

DBGDSAR[31:0]

RO

-

-

0

c2

-

DBGDSAR[63:0]

12

RO

-

Debug Self Address Register 

RES0

c7

7

c0

0

DBGDEVID2

RO

0x00000000

Debug Device ID Register 2, 

RES0

c7

7

c1

0

DBGDEVID1

RO

0x00000000

5.1.4 DBGDEVID1, Debug Device ID Register 1

 on page

491

c7

7

c2

0

DBGDEVID

RO

0x00110F10

5.1.3 DBGDEVID, Debug Device ID Register

 on page 489

c7

6

c8

0

DBGCLAIMSET

RW

0x000000FF

Debug Claim Tag Set Register

c7

6

c9

0

DBGCLAIMCLR

RW

0x00000000

Debug Claim Tag Clear Register

c7

6

c14

0

DBGAUTHSTATUS RO

0x000000AA

13

Debug Authentication Status Register

10

The actual reset value is 32'hxxxxxxxxx.

11

The actual reset value is 31'b0000000000000000000000000000,EDPRCR.COREPURQ.

12

Previously defined the offset from the base address defined in DBGDRAR of the physical base address of the

debug registers for the core. This register is now deprecated and 

RES0

.

13

The actual reset value is 24'h000000,1'b1,1'b0,1'b1,1'b0,1'b1,1'b0,1'b1,1'b0.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

486

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.1.2 DBGBCR, Debug Breakpoint Control Registers

The DBGBCR

n

 holds control information for a breakpoint. Each DBGBVR is associated with a

DBGBCR to form a 

Breakpoint Register Pair

 (BRP). DBGBVR

n

 is associated with DBGBCR

n

 to form

BRP

n

. The range of 

n

 for DBGBCR

n

 is 0 to 5.

Bit field descriptions

Figure 5-1: DBGBCR

31

24 23

20 19

16 15

13

9 8

5 4 3 2 1 0

LBN

SSC

12

HMC

14

BT

BAS

PMC E

RES

0

RES0, [31:24]

RES0

Reserved.

BT, [23:20]

Breakpoint Type. This field controls the behavior of Breakpoint debug event generation. This

includes the meaning of the value held in the associated DBGBVR

n

, indicating whether it is

an instruction address match or mismatch or a Context match. It also controls whether the

breakpoint is linked to another breakpoint. The possible values are:

0b0000

Unlinked instruction address match.

0b0001

Linked instruction address match.

0b0010

Unlinked Context ID match.

0b0011

Linked Context ID match.

0b0100

Unlinked instruction address mismatch.

0b0101

Linked instruction address mismatch.

0b1000

Unlinked VMID match.

0b1001

Linked VMID match.

0b1010

Unlinked VMID + Context ID match.

0b1011

Linked VMID + Context ID match.

All other values are reserved.

The field break down is:
• BT[3:1]: Base type. If the breakpoint is not context-aware, these bits are 

RES0

. Otherwise,

the possible values are:

0b000

Match address. DBGBVR

n

 is the address of an instruction.

0b001

Match context ID. DBGBVR

n

[31:0] is a context ID.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

487

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

0b010

Address mismatch. Mismatch address. Behaves as type

0b000 if either:
◦ In an AArch64 translation regime.
◦ Halting debug-mode is enabled and halting is allowed.

Otherwise, DBGBVR

n

 is the address of an instruction to be

stepped.

0b100

Match VMID. DBGBVR

n

[7:0] is a VMID.

0b101

Match VMID and context ID. DBGBVR

n

[31:0] is a context ID,

and DBGBVR

n

[7:0] is a VMID.

• BT[0]: Enable linking.

LBN, [19:16]

Linked breakpoint number. For Linked address matching breakpoints, this specifies the index

of the Context-matching breakpoint linked to.

SSC, [15:14]

Security State Control. Determines the security states that a breakpoint debug event for

breakpoint 

n

 is generated.

This field must be interpreted with the 

Higher Mode Control

 (HMC), and 

Privileged Mode

Control

 (PMC), fields to determine the mode and security states that can be tested.

See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for possible values of the

fields.

HMC, [13]

Hyp Mode Control bit. Determines the debug perspective for deciding when a breakpoint

debug event for breakpoint 

n

 is generated.

This bit must be interpreted with the SSC and PMC fields to determine the mode and

security states that can be tested.

See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for possible values of the

fields.

RES0, [12:9]

RES0

Reserved.

BAS, [8:5]

Byte Address Select. Defines which half-words a regular breakpoint matches, regardless of

the instruction set and execution state. A debugger must program this field as follows:

0x3

Match the T32 instruction at DBGBVR

n

.

0xC

Match the T32 instruction at DBGBVR

n

+2.

0xF

Match the A64 or A32 instruction at DBGBVR

n

, or context match.

All other values are reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

488

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

The Arm

®

v8‑A architecture does not support direct execution of Java bytecodes. BAS[3] and

BAS[1] ignore writes and on reads return the values of BAS[2] and BAS[0] respectively.

See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for more information on

how the BAS field is interpreted by hardware.

RES0, [4:3]

RES0

Reserved.

PMC, [2:1]

Privileged Mode Control. Determines the exception level or levels that a breakpoint debug

event for breakpoint 

n

 is generated.

This field must be interpreted with the SSC and HMC fields to determine the mode and

security states that can be tested.

See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for possible values of the

fields.

Bits[2:1] have no effect for accesses made in Hyp mode.

E, [0]

Enable breakpoint. This bit enables the BRP:

0

BRP disabled.

1

BRP enabled.

A BRP never generates a breakpoint debug event when it is disabled.

The value of DBGBCR

n

.E is 

UNKNOWN

 on reset. A debugger must ensure that DBGBCR

n

.E

has a defined value before it enables debug.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

489

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.1.3 DBGDEVID, Debug Device ID Register

The DBGDEVID specifies the version of the Debug architecture implemented and some features of

the debug implementation.

Bit field descriptions

Figure 5-2: DBGDEVID bit assignments

CIDMask

31

4 3

0

28 27

24 23

20 19

16 15

12 11

8 7

AuxRegs DoubleLock VirtExtns

VectorCatch

BPAddrMask

WPAddrMask

RES

0

CIDMask, [31:28]

Specifies the level of support for the Context ID matching breakpoint masking capability. This

value is:

0x0

Context ID masking is not implemented.

AuxRegs, [27:24]

Specifies support for the Debug External Auxiliary Control Register. This value is:

0x0

None supported.

DoubleLock, [23:20]

Specifies support for the Debug OS Double Lock Register. This value is:

0x1

The core supports Debug OS Double Lock Register.

VirtExtns, [19:16]

Specifies whether EL2 is implemented. This value is:

0x1

The core implements EL2.

VectorCatch, [15:12]

Defines the form of the vector catch event implemented. This value is:

0x0

The core implements address matching form of vector catch.

BPAddrMask, [11:8]

Indicates the level of support for the 

Immediate Virtual Address

 (IVA) matching breakpoint

masking capability. This value is:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

490

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

0xF

Breakpoint address masking not implemented. DBGBCRn[28:24] are

RES0

.

WPAddrMask, [7:4]

Indicates the level of support for the DVA matching watchpoint masking capability. This value

is:

0x1

Watchpoint address mask implemented.

[3:0]

Reserved, 

RES0

.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

5.1.4 DBGDEVID1, Debug Device ID Register 1

The DBGDEVID1 adds to the information given by the DBGDIDR by describing other features of

the debug implementation.

Bit field descriptions

Figure 5-3: DBGDEVID1 bit assignments

31

0

res0

RES0, [31:0]

RES0

Reserved.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

491

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.1.5 DBGDIDR, Debug ID Register

The DBGDIDR specifies the version of the Debug architecture that is implemented and some

features of the debug implementation.

Bit field descriptions

Figure 5-4: DBGDIDR bit assignments

31

28 27

24 23

20 19

16 15 14 13 12 11

0

WRPs

BRPs

CTX_CMPs

Version

DEVID_imp

PCSR_imp

SE

nSUHD_imp

RES

0

WRPs, [31:28]

The number of 

Watchpoint Register Pairs

 (WRPs) implemented. The number of implemented

WRPs is one more than the value of this field. The value is:

0x3

The core implements 4 WRPs.

This field has the same value as ID_AA64DFR0_EL1.WRPs.

BRPs, [27:24]

The number of 

Breakpoint Register Pairs

 (BRPs) implemented. The number of implemented

BRPs is one more than the value of this field. The value is:

0x5

The core implements 6 BRPs.

This field has the same value as ID_AA64DFR0_EL1.BRPs.

CTX_CMPs, [23:20]

The number of BRPs that can be used for Context matching. This is one more than the value

of this field. The value is:

0x1

The core implements two Context matching breakpoints, breakpoints

4 and 5.

This field has the same value as ID_AA64DFR0_EL1.CTX_CMPs.

Version, [19:16]

The Debug architecture version.

0x8

The core implements Arm

®

v8‑A Debug architecture.

DEVID_imp, [15]

RAO

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

492

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

nSUHD_imp, [14]

Secure User Halting Debug not implemented bit. The value is:

1

The core does not implement Secure User Halting Debug.

PCSR_imp, [13]

RAZ

Reserved.

SE, [12]

EL3 implemented. The value is:

1

The cluster implements EL3.

RES0, [11:0]

RES0

Reserved.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

5.1.6 DBGWCR, Debug Watchpoint Control Registers

The DBGWCR

n

 holds control information for a watchpoint. Each DBGWCR is associated

with a DBGWVR_EL1 to form a 

Watchpoint Register Pair

 (WRP). DBGWCR

n

 is associated with

DBGWVR

n

_EL1 to form WRP

n

. The range of 

n

 for DBGBCR

n

 is 0 to 3.

Bit field descriptions

Figure 5-5: DBGWCR

BAS

31

29 28

24 23

21 20 19

16 15 14 13 12

5 4 3 2 1 0

WT

SSC

LSC

MASK

LBN

HMC

PAC E

RES

0

RES0, [31:29]

RES0

Reserved.

MASK, [28:24]

Address mask. Only objects up to 2GB can be watched using a single mask.

0b0000

No mask.

0b0001

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

493

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

0b0010

Reserved.

Other values mask the corresponding number of address bits, from 

0b00011

 masking

3 address bits (

0x00000007

 mask for address) to 

0b11111

 masking 31 address bits

(

0x7FFFFFFF

 mask for address).

RES0, [23:21]

RES0

Reserved.

WT, [20]

Watchpoint type. Possible values are:

0

Unlinked data address match.

1

Linked data address match.

On Cold reset, the field reset value is architecturally 

UNKNOWN

.

LBN, [19:16]

Linked breakpoint number. For Linked data address watchpoints, this specifies the index of

the Context-matching breakpoint linked to.

On Cold reset, the field reset value is architecturally 

UNKNOWN

.

SSC, [15:14]

Security state control. Determines the Security states under which a watchpoint debug event

for watchpoint n is generated. This field must be interpreted along with the HMC and PAC

fields.

On Cold reset, the field reset value is architecturally 

UNKNOWN

.

HMC, [13]

Higher mode control. Determines the debug perspective for deciding when a watchpoint

debug event for watchpoint n is generated. This field must be interpreted along with the SSC

and PACfields.

On Cold reset, the field reset value is architecturally 

UNKNOWN

.

BAS, [12:5]

Byte address select. Each bit of this field selects whether a byte from within the word or

double-word addressed by DBGWVR

n

 is being watched. See the 

Arm

®

 Architecture Reference

Manual for A-profile architecture

 for more information.

LSC, [4:3]

Load/store access control. This field enables watchpoint matching on the type of access

being made. The possible values are:

0b01

Match instructions that load from a watchpointed address.

0b10

Match instructions that store to a watchpointed address.

0b11

Match instructions that load from or store to a watchpointed

address.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

494

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

All other values are reserved, but must behave as if the watchpoint is disabled. Software

must not rely on this property as the behavior of reserved values might change in a future

revision of the architecture.

IGNORED

 if E is 0.

On Cold reset, the field reset value is architecturally 

UNKNOWN

.

PAC, [2:1]

Privilege of access control. Determines the exception level or levels at which a watchpoint

debug event for watchpoint n is generated. This field must be interpreted along with the SSC

and HMCfields.

On Cold reset, the field reset value is architecturally 

UNKNOWN

.

E, [0]

Enable watchpoint n. Possible values are:

0

Watchpoint disabled.

1

Watchpoint enabled.

On Cold reset, the field reset value is architecturally 

UNKNOWN

.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

5.2 AArch64 debug registers

This chapter describes the debug registers in the AArch64 Execution state and shows examples of

how to use them.

5.2.1 AArch64 Debug register summary

This section summarizes the debug control registers that are accessible in the AArch64 Execution

state.

These registers, listed in the following table, are accessed by the 

MRS

 and 

MSR

 instructions in the

order of Op0, CRn, Op1, CRm, Op2.

See 

5.3.1 Memory-mapped Debug register summary

 on page 508 for a complete list of registers

accessible from the external debug interface. The 64-bit registers cover two addresses on the

external memory interface. For those registers that are not described in this chapter, see the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

495

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Table 5-2: AArch64 debug register summary

Name

Type Reset

Width Description

OSDTRRX_EL1

RW

0x00000000

32

Debug Data Transfer Register, Receive, External View

DBGBVR0_EL1

RW -

64

Debug Breakpoint Value Register 0

DBGBCR0_EL1

RW UNK

32

5.2.2 DBGBCRn_EL1, Debug Breakpoint Control Registers, EL1

 on page 497

DBGWVR0_EL1

RW -

64

Debug Watchpoint Value Register 0

DBGWCR0_EL1

RW UNK

32

5.2.4 DBGWCRn_EL1, Debug Watchpoint Control Registers, EL1

 on page 501

DBGBVR1_EL1

RW -

64

Debug Breakpoint Value Register 1

DBGBCR1_EL1

RW UNK

32

5.2.2 DBGBCRn_EL1, Debug Breakpoint Control Registers, EL1

 on page 497

DBGWVR1_EL1

RW -

64

Debug Watchpoint Value Register 1

DBGWCR1_EL1

RW UNK

32

5.2.4 DBGWCRn_EL1, Debug Watchpoint Control Registers, EL1

 on page 501

MDCCINT_EL1

RW

0x00000000

32

Monitor Debug Comms Channel Interrupt Enable Register

MDSCR_EL1

RW -

32

5.2.5 MDSCR_EL1, Monitor Debug System Control Register, EL1

 on page 504

DBGBVR2_EL1

RW -

64

Debug Breakpoint Value Register 2

DBGBCR2_EL1

RW UNK

32

5.2.2 DBGBCRn_EL1, Debug Breakpoint Control Registers, EL1

 on page 497

DBGWVR2_EL1

RW -

64

Debug Watchpoint Value Register 2

DBGWCR2_EL1

RW UNK

32

5.2.4 DBGWCRn_EL1, Debug Watchpoint Control Registers, EL1

 on page 501

OSDTRTX_EL1

RW -

32

Debug Data Transfer Register, Transmit, External View

DBGBVR3_EL1

RW -

64

Debug Breakpoint Value Register 3

DBGBCR3_EL1

RW UNK

32

5.2.2 DBGBCRn_EL1, Debug Breakpoint Control Registers, EL1

 on page 497

DBGWVR3_EL1

RW -

64

Debug Watchpoint Value Register 3

DBGWCR3_EL1

RW UNK

32

5.2.4 DBGWCRn_EL1, Debug Watchpoint Control Registers, EL1

 on page 501

DBGBVR4_EL1

RW -

64

Debug Breakpoint Value Register 4

DBGBCR4_EL1

RW UNK

32

5.2.2 DBGBCRn_EL1, Debug Breakpoint Control Registers, EL1

 on page 497

DBGBVR5_EL1

RW -

64

Debug Breakpoint Value Register 5

DBGBCR5_EL1

RW UNK

32

5.2.2 DBGBCRn_EL1, Debug Breakpoint Control Registers, EL1

 on page 497

OSECCR_EL1

RW

0x00000000

32

Debug OS Lock Exception Catch Register

MDCCSR_EL0

RO

0x00000000

32

Monitor Debug Comms Channel Status Register

DBGDTR_EL0

RW

0x00000000

64

Debug Data Transfer Register, half-duplex

DBGDTRTX_EL0

WO

0x00000000

32

Debug Data Transfer Register, Transmit, Internal View

DBGDTRRX_EL0

RO

0x00000000

32

Debug Data Transfer Register, Receive, Internal View

DBGVCR32_EL2

RW -

32

Debug Vector Catch Register

MDRAR_EL1

RO

-

64

Debug ROM Address Register. This register is reserved, 

RES0

OSLAR_EL1

WO -

32

Debug OS Lock Access Register

OSLSR_EL1

RO

0x0000000A

32

Debug OS Lock Status Register

OSDLR_EL1

RW

0x00000000

32

Debug OS Double Lock Register

DBGPRCR_EL1

RW -

32

Debug Power/Reset Control Register

DBGCLAIMSET_EL1

RW

0x000000FF

32

5.2.3 DBGCLAIMSET_EL1, Debug Claim Tag Set Register, EL1

 on page 500

DBGCLAIMCLR_EL1

RW

0x00000000

32

Debug Claim Tag Clear Register

DBGAUTHSTATUS_EL1 RO

0x000000AA

32

Debug Authentication Status Register

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

496

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.2.2 DBGBCRn_EL1, Debug Breakpoint Control Registers, EL1

The DBGBCRn_EL1 registers hold control information for a breakpoint. Each DBGBVRn_EL1

is associated with a DBGBCRn_EL1 to form a 

Breakpoint Register Pair

 (BRP). The range of 

n

 for

DBGBCRn_EL1 registers is 0 to 5.

Bit field descriptions

The DBGBCRn_EL1 registers are 32-bit registers.

Figure 5-6: DBGBCRn_EL1 bit assignments

31

24 23

20 19

16 15

13

9 8

5 4 3 2 1 0

LBN

SSC

12

HMC

14

BT

BAS

PMC  E

res0

RES0, [31:24]

RES0

Reserved.

BT, [23:20]

Breakpoint Type. This field controls the behavior of Breakpoint debug event generation. This

includes the meaning of the value held in the associated DBGBVR

n

_EL1, indicating whether

it is an instruction address match or mismatch, or a Context match. It also controls whether

the breakpoint is linked to another breakpoint. The possible values are:

0b0000

Unlinked instruction address match.

0b0001

Linked instruction address match.

0b0010

Unlinked Context ID match.

0b0011

Linked Context ID match.

0b0100

Unlinked instruction address mismatch.

0b0101

Linked instruction address mismatch.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

497

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

0b0110

Unlinked CONTEXTIDR_EL1 match.

0b0111

Linked CONTEXTIDR_EL1 match.

0b1000

Unlinked VMID match.

0b1001

Linked VMID match.

0b1010

Unlinked VMID + Conext ID match.

0b1011

Linked VMID + Context ID match.

0b1100

Unlinked CONTEXTIDR_EL2 match.

0b1101

Linked CONTEXTIDR_EL2 match.

0b1110

Unlinked Full Context ID match.

0b1111

Linked Full Context ID match.

The field breakdown is:
• BT[3:1]: Base type. If the breakpoint is not context-aware, these bits are 

RES0

. Otherwise,

the possible values are:

0b000

Match address. DBGBVR

n

_EL1 is the address of an

instruction.

0b001

Match context ID. DBGBVR

n

_EL1[31:0] is a context ID.

0b010

Address mismatch. Mismatch address. Behaves as type

0b000 if either:
◦ In an AArch64 translation regime.
◦ Halting debug-mode is enabled and halting is allowed.

Otherwise, DBGBVR

n

_EL1 is the address of an instruction to

be stepped.

0b011

Match CONTEXTIDR_EL1. DBGBVR

n

_EL1[31:0] is a context

ID.

0b100

Match VMID. DBGBVR

n

_EL1[47:32] is a VMID.

0b101

Match VMID and CONTEXTIDR_EL1. DBGBVR

n

_EL1[31:0]

is a context ID, and DBGBVR

n

_EL1[47:32] is a VMID.

0b110

Match CONTEXTIDR_EL2. DBGBVR

n

_EL1[63:32] is a

context ID.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

498

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

0b111

Match CONTEXTIDR_EL1 and CONTEXTIDR_EL2.

DBGBVR

n

_EL1[31:0] and DBGBVR

n

_EL1[63:32] are Context

IDs.

• BT[0]: Enable linking.

LBN, [19:16]

Linked breakpoint number. For Linked address matching breakpoints, this specifies the index

of the context-matching breakpoint linked to.

SSC, [15:14]

Security State Control. Determines the Security states under which a breakpoint debug event

for breakpoint 

n

 is generated.

This field must be interpreted with the 

Higher Mode Control

 (HMC), and 

Privileged Mode

Control

 (PMC), fields to determine the mode and Security states that can be tested.

See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for possible values of the

HMC and PMC fields.

HMC, [13]

Hyp Mode Control bit. Determines the debug perspective for deciding when a breakpoint

debug event for breakpoint 

n

 is generated.

This bit must be interpreted with the SSC and PMC fields to determine the mode and

Security states that can be tested.

See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for possible values of the

SSC and PMC fields.

RES0, [12:9]

RES0

Reserved.

BAS, [8:5]

Byte Address Select. Defines which halfwords a regular breakpoint matches, regardless of the

instruction set and Execution state. A debugger must program this field as follows:

0x3

Match the T32 instruction at DBGBVR

n

_EL1.

0xC

Match the T32 instruction at DBGBVR

n

_EL1+2.

0xF

Match the A64 or A32 instruction at DBGBVR

n

_EL1, or context match.

All other values are reserved.

The Arm

®

v8‑A architecture does not support direct execution of Java bytecodes. BAS[3] and

BAS[1] ignore writes and on reads return the values of BAS[2] and BAS[0] respectively.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

499

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for more information on

how the BAS field is interpreted by hardware.

RES0, [4:3]

RES0

Reserved.

PMC, [2:1]

Privileged Mode Control. Determines the Exception level or levels that a breakpoint debug

event for breakpoint 

n

 is generated.

This field must be interpreted with the SSC and HMC fields to determine the mode and

Security states that can be tested.

See the 

Arm

®

 Architecture Reference Manual for A-profile architecture

 for possible values of the

SSC and HMC fields.

Bits[2:1] have no effect for accesses made in Hyp mode.

E, [0]

Enable breakpoint. This bit enables the BRP:

0

BRP disabled.

1

BRP enabled.

A BRP never generates a breakpoint debug event when it is disabled.

The value of DBGBCR

n

_EL1.E is 

UNKNOWN

 on reset. A debugger must ensure that

DBGBCR

n

_EL1.E has a defined value before it enables debug.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

5.2.3 DBGCLAIMSET_EL1, Debug Claim Tag Set Register, EL1

The DBGCLAIMSET_EL1 is used by software to set CLAIM bits to 1.

Bit field descriptions

The DBGCLAIMSET_EL1 is a 32-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

500

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-7: DBGCLAIMSET_EL1 bit assignments

31

8 7

0

CLAIM

res0

RES0, [31:8]

RES0

Reserved.

CLAIM, [7:0]

Claim set bits.

Writing a 1 to one of these bits sets the corresponding CLAIM bit to 1. This is an indirect

write to the CLAIM bits.

A single write operation can set multiple bits to 1. Writing 0 to one of these bits has no

effect.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

5.2.4 DBGWCRn_EL1, Debug Watchpoint Control Registers, EL1

The DBGWCRn_EL1 registers hold control information for a watchpoint. Each DBGWCRn_EL1

is associated with a DBGWVRn_EL1 to form a 

Watchpoint Register Pair

 (WRP). The range of 

n

 for

DBGWCRn_EL1 registers is 0 to 3.

Bit field descriptions

The DBGWCRn_EL1 registers are 32-bit registers.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

501

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-8: DBGWCRn_EL1 bit assignments

BAS

31

29 28

24 23

21 20 19

16 15 14 13 12

5 4 3 2 1 0

WT

SSC

LSC

MASK

LBN

HMC

PAC E

res0

RES0, [31:29]

RES0

Reserved.

MASK, [28:24]

Address mask. Only objects up to 2GB can be watched using a single mask.

0b00000

No mask.

0b00001

Reserved.

0b00010

Reserved.

Other values mask the corresponding number of address bits, from 

0b00011

 masking

3 address bits (

0x00000007

 mask for address) to 

0b11111

 masking 31 address bits

(

0x7FFFFFFF

 mask for address).

RES0, [23:21]

RES0

Reserved.

WT, [20]

Watchpoint type. Possible values are:

0b0

Unlinked data address match.

0b1

Linked data address match.

On Cold reset, the field reset value is architecturally 

UNKNOWN

.

LBN, [19:16]

Linked breakpoint number. For Linked data address watchpoints, this specifies the index of

the Context-matching breakpoint linked to.

On Cold reset, the field reset value is architecturally 

UNKNOWN

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

502

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

SSC, [15:14]

Security state control. Determines the Security states under which a watchpoint debug event

for watchpoint n is generated. This field must be interpreted along with the HMC and PAC

fields.

On Cold reset, the field reset value is architecturally 

UNKNOWN

.

HMC, [13]

Higher mode control. Determines the debug perspective for deciding when a watchpoint

debug event for watchpoint n is generated. This field must be interpreted along with the SSC

and PAC fields.

On Cold reset, the field reset value is architecturally 

UNKNOWN

.

BAS, [12:5]

Byte address select. Each bit of this field selects whether a byte from within the word or

double-word addressed by DBGWVR

n

_EL1 is being watched. See the 

Arm

®

 Architecture

Reference Manual for A-profile architecture

 for more information.

LSC, [4:3]

Load/store access control. This field enables watchpoint matching on the type of access

being made. The possible values are:

0b01

Match instructions that load from a watchpoint address.

0b10

Match instructions that store to a watchpoint address.

0b11

Match instructions that load from or store to a watchpoint address.

All other values are reserved, but must behave as if the watchpoint is disabled. Software

must not rely on this property because the behavior of reserved values might change in a

future revision of the architecture.

IGNORED

On Cold reset, the field reset value is architecturally 

UNKNOWN

.

PAC, [2:1]

Privilege of access control. Determines the Exception level or levels at which a watchpoint

debug event for watchpoint n is generated. This field must be interpreted along with the SSC

and HMCfields.

On Cold reset, the field reset value is architecturally 

UNKNOWN

.

E, [0]

Enable watchpoint n. Possible values are:

0b0

Watchpoint disabled.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

503

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

0b1

Watchpoint enabled.

On Cold reset, the field reset value is architecturally 

UNKNOWN

.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

5.2.5 MDSCR_EL1, Monitor Debug System Control Register, EL1

The MDSCR_EL1 main control register for the debug implementation.

Bit field descriptions

MDSCR_EL1 is a 32-bit register, and is part of the Debug registers functional group.

Figure 5-9: MDSCR_EL1 bit assignments

31

0

ERR

20 19

21

22

16 15

18

14 13

11

1

12

6

7

23

5

KDE
HDE

TDCC

INTdis

RAZ/WI

TXU

TDA

RES

0

SS

25 24

26

27

28

29

30

MDE

RXO

RXfull

TXfull

RES0, [31]

RES0

Reserved.

RXfull, [30]

Used for save/restore of EDSCR.RXfull
• When OSLSR_EL1.OSLK == 0 (the OS lock is unlocked), this bit is RO, and software must

treat it as UNK/SBZP.

• When OSLSR_EL1.OSLK == 1 (the OS lock is locked), this bit is RW.

TXfull, [29]

Used for save/restore of EDSCR.RXfull
• When OSLSR_EL1.OSLK == 0 (the OS lock is unlocked), this bit is RO, and software must

treat it as UNK/SBZP.

• When OSLSR_EL1.OSLK == 1 (the OS lock is locked), this bit is RW.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

504

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

RES0, [28]

RES0

Reserved.

RXO, [27]

Used for save/restore of EDSCR.RXO.
• When OSLSR_EL1.OSLK == 0 (the OS lock is unlocked), this bit is RO. Software must

treat it as 

UNKNOWN

 and use an SBZP policy for writes.

• When OSLSR_EL1.OSLK == 1 (the OS lock is locked), this bit is RW.

TXU, [26]

Used for save/restore of EDSCR.TXU.
• When OSLSR_EL1.OSLK == 0 (the OS lock is unlocked), this bit is RO. Software must

treat it as 

UNKNOWN

 and use an SBZP policy for writes.

• When OSLSR_EL1.OSLK == 1 (the OS lock is locked), this bit is RW.

RES0, [25:24]

RES0

Reserved.

INTdis, [23:22]

Used for save/restore of EDSCR.INTdis.
• When OSLSR_EL1.OSLK == 0 (the OS lock is unlocked), this bit is RO. Software must

treat it as 

UNKNOWN

 and use an SBZP policy for writes.

• When OSLSR_EL1.OSLK == 1 (the OS lock is locked), this bit is RW.

TDA, [21]

Used for save/restore of EDSCR.TDA.
• When OSLSR_EL1.OSLK == 0 (the OS lock is unlocked), this bit is RO. Software must

treat it as 

UNKNOWN

 and use an SBZP policy for writes.

• When OSLSR_EL1.OSLK == 1 (the OS lock is locked), this bit is RW.

RES0, [20:19]

RES0

Reserved.

RAZ/WI, [18:16]

Reserved, RAZ/WI. Hardware must implement this as RAZ/WI. Software must not rely on

this property as the behavior of reserved values might change in a future revision of the

architecture.

MDE, [15]

Monitor debug events. Enable Breakpoint, Watchpoint, and Vector catch debug exceptions.

0

Breakpoint, Watchpoint, and Vector catch debug exceptions disabled.

1

Breakpoint, Watchpoint, and Vector catch debug exceptions enabled.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

505

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

When this register has an architecturally-defined reset value, this field resets to a value that is

architecturally 

UNKNOWN

 on Warm reset.

HDE, [14]

Used for save/restore of EDSCR.HDE.
• When OSLSR_EL1.OSLK == 0 (the OS lock is unlocked), this bit is RO. Software must

treat it as 

UNKNOWN

 and use an SBZP policy for writes.

• When OSLSR_EL1.OSLK == 1 (the OS lock is locked), this bit is RW.

KDE, [13]

Local (kernel) debug enable. If EL

D

 is using AArch64, enable Software debug events within

EL

D

. Permitted values are:

0

Software debug events, other than Software breakpoint instructions,

disabled within EL

D

.

1

Software debug events enabled within EL

D

.

RES0

 if EL

D

 is using AArch32.

When this register has an architecturally-defined reset value, this field resets to a value that is

architecturally 

UNKNOWN

 on Warm reset.

TDCC, [12]

Traps EL0 accesses to the DCC registers to EL1, from both Execution states:

0

EL0 using AArch64:
• EL0 accesses to the MDCCSR_EL0, DBGDTR_EL0,

DBGDTRTX_EL0, and DBGDTRRX_EL0 registers are not trapped

to EL1.

EL0 using AArch32:
• EL0 accesses to the DBGDSCRint, DBGDTRRXint,

DBGDTRTXint, DBGDIDR, DBGDSAR, and DBGDRAR registers

are not trapped to EL1.

1

EL0 using AArch64:
• EL0 accesses to the MDCCSR_EL0, DBGDTR_EL0,

DBGDTRTX_EL0, and DBGDTRRX_EL0 registers are trapped to

EL1.

EL0 using AArch32:
• EL0 accesses to the DBGDSCRint, DBGDTRRXint,

DBGDTRTXint, DBGDIDR, DBGDSAR, and DBGDRAR registers

are trapped to EL1.

All accesses to these AArch32 registers are trapped, including LDC

and STC accesses to DBGDTRTXint and DBGDTRRXint, and MRRC

accesses to DBGDSAR and DBGDRAR.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

506

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Traps of AArch32 PL0 accesses to the DBGDTRRXint and

DBGDTRTXint are 

IGNORED

 in Debug state.

When this register has an architecturally-defined reset value, this

field resets to a value that is architecturally 

UNKNOWN

 on Warm

reset.

RES0, [11:7]

RES0

Reserved.

ERR, [6]

Used for save/restore of EDSCR.ERR.
• When OSLSR_EL1.OSLK == 0 (the OS lock is unlocked), this bit is RO. Software must

treat it as 

UNKNOWN

 and use an SBZP policy for writes.

• When OSLSR_EL1.OSLK == 1 (the OS lock is locked), this bit is RW.

RES0, [5:1]

RES0

Reserved.

SS, [0]

Software step control bit. If EL

D

 is using AArch64, enable Software step. Permitted values

are:

0

Software step is disabled.

1

Software step is unabled.

RES0

 if EL

D

 is using AArch32.

When this register has an architecturally-defined reset value, this field resets to a value that is

architecturally 

UNKNOWN

 on Warm reset.

Configurations

AArch64 System register MDSCR_EL1 is architecturally mapped to AArch32 System register

DBGDSCRext. See 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

This register is in the Warm reset domain. Some or all RW fields of this register have defined

reset values. On a Warm or Cold reset these apply only if the PE resets into an Exception

level that is using AArch64. Otherwise, on a Warm or Cold reset RW fields in this register

reset to architecturally 

UNKNOWN

 values.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

507

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.3 Memory-mapped Debug registers

This chapter describes the memory-mapped Debug registers and shows examples of how to use

them.

5.3.1 Memory-mapped Debug register summary

The following table shows the offset address for the registers that are accessible from the external

debug interface.

For those registers that are not described in this chapter, see the 

Arm

®

 Architecture Reference

Manual for A-profile architecture

.

Table 5-3: Memory-mapped debug register summary

Offset

Name

Type Width Description

0x000-0x01C

-

-

-

Reserved

0x020

EDESR

RW 32

External Debug Event Status Register

0x024

EDECR

RW 32

External Debug Execution Control Register

0x028-0x02C

-

-

-

Reserved

0x030

EDWAR[31:0]

0x034

EDWAR[63:32]

RO

64

External Debug Watchpoint Address Register

0x038-0x07C

-

-

-

Reserved

0x080

DBGDTRRX_EL0

RW 32

Debug Data Transfer Register, Receive

0x084

EDITR

WO 32

External Debug Instruction Transfer Register

0x088

EDSCR

RW 32

External Debug Status and Control Register

0x08C

DBGDTRTX_EL0

WO 32

Debug Data Transfer Register, Transmit

0x090

EDRCR

WO 32

5.3.17 EDRCR, External Debug Reserve Control Register

 on page 523

0x094

-

RW 32

Reserved

0x098

EDECCR

RW 32

External Debug Exception Catch Control Register

0x09C

-

-

-

Reserved

0x0A0

-

-

-

Reserved

0x0A4

-

-

-

Reserved

0x0A8

-

-

-

Reserved

0x0AC

-

-

-

Reserved

0x0B0-0x2FC

-

-

-

Reserved

0x300

OSLAR_EL1

WO 32

OS Lock Access Register

0x304-0x30C

-

-

-

Reserved

0x310

EDPRCR

RW 32

External Debug Power/Reset Control Register

0x314

EDPRSR

RO

32

External Debug Processor Status Register

0x318-0x3FC

-

-

-

Reserved

0x400

DBGBVR0_EL1[31:0]

RW 64

Debug Breakpoint Value Register 0

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

508

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Offset

Name

Type Width Description

0x404

DBGBVR0_EL1[63:32]

0x408

DBGBCR0_EL1

RW 32

5.2.2 DBGBCRn_EL1, Debug Breakpoint Control Registers, EL1

 on page 497

0x40C

-

-

-

Reserved

0x410

DBGBVR1_EL1[31:0]

0x414

DBGBVR1_EL1[63:32]

RW 64

Debug Breakpoint Value Register 1

0x418

DBGBCR1_EL1

RW 32

5.2.2 DBGBCRn_EL1, Debug Breakpoint Control Registers, EL1

 on page 497

0x41C

-

-

-

Reserved

0x420

DBGBVR2_EL1[31:0]

0x424

DBGBVR2_EL1[63:32]

RW 64

Debug Breakpoint Value Register 2

0x428

DBGBCR2_EL1

RW 32

5.2.2 DBGBCRn_EL1, Debug Breakpoint Control Registers, EL1

 on page 497

0x42C

-

-

-

Reserved

0x430

DBGBVR3_EL1[31:0]

0x434

DBGBVR3_EL1[63:32]

RW 64

Debug Breakpoint Value Register 3

0x438

DBGBCR3_EL1

RW 32

5.2.2 DBGBCRn_EL1, Debug Breakpoint Control Registers, EL1

 on page 497

0x43C

-

-

-

Reserved

0x440

DBGBVR4_EL1[31:0]

0x444

DBGBVR4_EL1[63:32]

RW 64

Debug Breakpoint Value Register 4

0x448

DBGBCR4_EL1

RW 32

5.2.2 DBGBCRn_EL1, Debug Breakpoint Control Registers, EL1

 on page 497

0x44C

-

-

-

Reserved

0x450

DBGBVR5_EL1[31:0]

RW 64

Debug Breakpoint Value Register 5

0x454

DBGBVR5_EL1[63:32] RW 64

Debug Breakpoint Value Register 5

0x458

DBGBCR5_EL1

RW 32

5.2.2 DBGBCRn_EL1, Debug Breakpoint Control Registers, EL1

 on page 497

0x45C-0x7FC

-

-

-

Reserved

0x800

DBGWVR0_EL1[31:0]

0x804

DBGWVR0_EL1[63:32]

RW 64

Debug Watchpoint Value Register 0

0x808

DBGWCR0_EL1

RW 32

5.2.4 DBGWCRn_EL1, Debug Watchpoint Control Registers, EL1

 on page 501

0x80C

-

-

-

Reserved

0x810

DBGWVR1_EL1[31:0]

0x814

DBGWVR1_EL1[63:32]

RW 64

Debug Watchpoint Value Register 1

0x818

DBGWCR1_EL1

RW 32

5.2.4 DBGWCRn_EL1, Debug Watchpoint Control Registers, EL1

 on page 501

0x81C

-

-

-

Reserved

0x820

DBGWVR2_EL1[31:0]

0x824

DBGWVR2_EL1[63:32]

RW 64

Debug Watchpoint Value Register 2

0x828

DBGWCR2_EL1

RW 32

5.2.4 DBGWCRn_EL1, Debug Watchpoint Control Registers, EL1

 on page 501

0x82C

-

-

-

Reserved

0x830

DBGWVR3_EL1[31:0]

0x834

DBGWVR3_EL1[63:32]

RW 64

Debug Watchpoint Value Register 0,

0x838

DBGWCR3_EL1

RW 32

5.2.4 DBGWCRn_EL1, Debug Watchpoint Control Registers, EL1

 on page 501

0x83C-0xCFC

-

-

-

Reserved

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

509

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Offset

Name

Type Width Description

0xD00

MIDR

RO

32

3.2.89 MIDR_EL1, Main ID Register, EL1

 on page 354

0xD04-0xD1C

-

-

-

Reserved

0xD20

EDPFR[31:0]

0xD24

EDPFR[63:32]

RO

64

3.2.63 ID_AA64PFR0_EL1, AArch64 Processor Feature Register 0, EL1

 on page

311

0xD28

EDDFR[31:0]

0xD2C

EDDFR[63:32]

RO

64

3.2.63 ID_AA64PFR0_EL1, AArch64 Processor Feature Register 0, EL1

 on page

311

0xD60-0xEFC

-

-

-

Reserved

0xF00

-

-

-

Reserved

0xF04-0xF9C

-

-

-

Reserved

0xFA0

DBGCLAIMSET_EL1

RW 32

5.2.3 DBGCLAIMSET_EL1, Debug Claim Tag Set Register, EL1

 on page 500

0xFA4

DBGCLAIMCLR_EL1

RW 32

Debug Claim Tag Clear Register

0xFA8

EDDEVAFF0

RO

32

3.1.77 MPIDR, Multiprocessor Affinity Register

 on page 189

0xFAC

EDDEVAFF1

RO

32

External Debug Device Affinity Register 1

0xFB0

-

-

-

Reserved

0xFB4

-

-

-

Reserved

0xFB8

DBGAUTHSTATUS_EL1 RO

32

Debug Authentication Status Register

0xFBC

EDDEVARCH

RO

32

External Debug Device Architecture Register

0xFC0

EDDEVID2

RO

32

External Debug Device ID Register 2, 

res0

0xFC4

EDDEVID1

RO

32

5.3.7 EDDEVID1, External Debug Device ID Register 1

 on page 515

0xFC8

EDDEVID

RO

32

5.3.6 EDDEVID, External Debug Device ID Register 0

 on page 514

0xFCC

EDDEVTYPE

RO

32

External Debug Device Type Register

0xFD0

EDPIDR4

RO

32

5.3.15 EDPIDR4, External Debug Peripheral Identification Register 4

 on page

522

0xFD4-0xFDC

EDPIDR5-7

RO

32

5.3.16 EDPIDRn, External Debug Peripheral Identification Registers 5-7

 on page

523

0xFE0

EDPIDR0

RO

32

5.3.11 EDPIDR0, External Debug Peripheral Identification Register 0

 on page

519

0xFE4

EDPIDR1

RO

32

5.3.12 EDPIDR1, External Debug Peripheral Identification Register 1

 on page

520

0xFE8

EDPIDR2

RO

32

5.3.13 EDPIDR2, External Debug Peripheral Identification Register 2

 on page

521

0xFEC

EDPIDR3

RO

32

5.3.14 EDPIDR3, External Debug Peripheral Identification Register 3

 on page

521

0xFF0

EDCIDR0

RO

32

5.3.2 EDCIDR0, External Debug Component Identification Register 0

 on page

510

0xFF4

EDCIDR1

RO

32

5.3.3 EDCIDR1, External Debug Component Identification Register 1

 on page

511

0xFF8

EDCIDR2

RO

32

5.3.4 EDCIDR2, External Debug Component Identification Register 2

 on page

512

0xFFC

EDCIDR3

RO

32

5.3.5 EDCIDR3, External Debug Component Identification Register 3

 on page

513

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

510

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.3.2 EDCIDR0, External Debug Component Identification Register 0

The EDCIDR0 provides information to identify an external debug component.

Bit field descriptions

The EDCIDR0 is a 32-bit register.

Figure 5-10: EDCIDR0 bit assignments

31

0

PRMBL_0

7

8

res0

RES0, [31:8]

RES0

Reserved.

PRMBL_0, [7:0]

0x0D

Preamble byte 0.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The EDCIDR0 can be accessed through the external debug interface, offset 

0xFF0

.

5.3.3 EDCIDR1, External Debug Component Identification Register 1

The EDCIDR1 provides information to identify an external debug component.

Bit field descriptions

The EDCIDR1 is a 32-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

511

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-11: EDCIDR1 bit assignments

31

0

PRMBL_1

7

8

3

4

CLASS

res0

RES0, [31:8]

RES0

Reserved.

CLASS, [7:4]

0x9

Debug component.

PRMBL_1, [3:0]

0x0

Preamble.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The EDCIDR1 can be accessed through the external debug interface, offset 

0xFF4

.

5.3.4 EDCIDR2, External Debug Component Identification Register 2

The EDCIDR2 provides information to identify an external debug component.

Bit field descriptions

The EDCIDR2 is a 32-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

512

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-12: EDCIDR2 bit assignments

31

0

PRMBL_2

7

8

res0

RES0, [31:8]

RES0

Reserved.

PRMBL_2, [7:0]

0x05

Preamble byte 2.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The EDCIDR2 can be accessed through the external debug interface, offset 

0xFF8

.

5.3.5 EDCIDR3, External Debug Component Identification Register 3

The EDCIDR3 provides information to identify an external debug component.

Bit field descriptions

The EDCIDR3 is a 32-bit register.

Figure 5-13: EDCIDR3 bit assignments

31

0

PRMBL_3

7

8

res0

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

513

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

RES0, [31:8]

RES0

Reserved.

PRMBL_3, [7:0]

0xB1

Preamble byte 3.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The EDCIDR3 can be accessed through the external debug interface, offset 

0xFFC

.

5.3.6 EDDEVID, External Debug Device ID Register 0

The EDDEVID provides extra information for external debuggers about features of the debug

implementation.

Bit field descriptions

The EDDEVID is a 32-bit register.

Figure 5-14: EDDEVID bit assignments

31

0

28 27

24 23

AuxRegs

res0

RES0, [31:28]

RES0

Reserved.

AuxRegs, [27:24]

Indicates support for Auxiliary registers:

0x0

None supported.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

514

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

RES0, [23:0]

RES0

Reserved.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The EDDEVID can be accessed through the external debug interface, offset 

0xFC8

.

5.3.7 EDDEVID1, External Debug Device ID Register 1

The EDDEVID1 provides extra information for external debuggers about features of the debug

implementation.

Bit field descriptions

The EDDEVID1 is a 32-bit register.

Figure 5-15: EDDEVID1 bit assignments

31

0

res0

RES0, [31:0]

RES0

Reserved.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The EDDEVID1 can be accessed through the external debug interface, offset 

0xFC4

.

5.3.8 EDDFR, External Debug Feature Register

The EDDFR provides top level information about the debug system in AArch64.

Bit field descriptions

The EDDFR is a 64-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

515

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-16: EDDFR bit assignments

4 3

8 7

12 11

16 15

20 19

24 23

28 27

0

63

UNKNOWN

TraceVer

PMUVer

BRPs

WRPs

CTX_CMPs

32 31

RES

0

RES0, [63:32]

RES0

Reserved.

CTX_CMPs, [31:28]

Number of breakpoints that are context-aware, minus 1. These are the highest numbered

breakpoints.

RES0, [27:24]

RES0

Reserved.

WRPs, [23:20]

Number of watchpoints, minus 1. The value of 

0b0000

 is reserved.

RES0, [19:16]

RES0

Reserved.

BRPs, [15:12]

Number of breakpoints, minus 1. The value of 

0b0000

 is reserved.

PMUVer, [11:8]

Performance Monitors extension version. Indicates whether system register interface to

Performance Monitors extension is implemented. Defined values are:

0x0000

Performance Monitors extension system registers not implemented.

0x0001

Performance Monitors extension system registers implemented,

PMUv3.

0x11111

IMPLEMENTATION DEFINED

 form of performance monitors supported,

PMUv3 not supported.

All other values are reserved.

TraceVer [7:4]

Trace support. Indicates whether system register interface to a trace macrocell is

implemented. Defined values are:

0x0000

Trace macrocell system registers not implemented.

0x0001

Trace macrocell system registers implemented.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

516

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

All other values are reserved.

A value of 

0x0000

 only indicates that no system register interface to a trace macrocell

is implemented. A trace macrocell might nevertheless be implemented without a system

register interface.

UNKNOWN, [3:0]

UNKNOWN

Reserved.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

EDDFR[31:0] can be accessed through the external debug interface, offset 

0xD28

.

EDDFR[63:32] can be accessed through the external debug interface, offset 

0xD2C

.

5.3.9 EDITCTRL, External Debug Integration Mode Control Register

The EDITCTRL enables the external debug to switch from its default mode into integration mode,

where test software can control directly the inputs and outputs of the core, for integration testing

or topology detection.

Bit field descriptions

The ESITCTRL is a 32-bit register.

Figure 5-17: EDITCTRL bit assignments

31

1 0

IME

RES

0

[31:1]

RES0

Reserved.

IME, [0]

Integration Mode Enable.

RES0

.

The device does not revert to an integration mode to enable

integration testing or topology detection.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

517

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

The EDITCTRL can be accessed through the external debug interface, offset 

0xF00

.

5.3.10 EDPFR, External Debug Processor Feature Register

The EDPFR provides additional information about implemented PE features in AArch64.

Bit field descriptions

The EDPFR is a 64-bit register.

Figure 5-18: EDPFR bit assignments

GIC

27

24

AdvSIMD

23

20

FP

19

16

EL3

15

12

EL2

11

8

EL1

7

4

EL0

3

0

63

28

RES

0

RES0, [63:28]

RES0

Reserved.

GIC, [27:24]

System register GIC interface. Defined values are:

0x0

No System register interface to the GIC is supported.

0x1

System register interface to the GIC CPU interface is supported.

All other values are reserved.

AdvSIMD, [23:20]

Advanced SIMD. Defined values are:

0x0

Advanced SIMD is implemented.

0xF

Advanced SIMD is not implemented.

All other values are reserved.

FP, [19:16]

Floating-point. Defined values are:

0x0

Floating-point is implemented.

0xF

Floating-point is not implemented.

All other values are reserved.

EL3 handling, [15:12]

EL3 exception handling:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

518

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

0x2

Instructions can be executed at EL3 in AArch64 or AArch32 state.

EL2 handling, [11:8]

EL2 exception handling:

0x2

Instructions can be executed at EL2 in AArch64 or AArch32 state.

EL1 handling, [7:4]

EL1 exception handling. The possible values are:

0x2

Instructions can be executed at EL1 in AArch64 or AArch32 state.

EL0 handling, [3:0]

EL0 exception handling. The possible values are:

0x2

Instructions can be executed at EL0 in AArch64 or AArch32 state.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

The EDPFR[31:0] can be accessed through the external debug interface, offset 

0xD20

.

The EDPFR[63:32] can be accessed through the external debug interface, offset 

0xD24

.

5.3.11 EDPIDR0, External Debug Peripheral Identification Register 0

The EDPIDR0 provides information to identify an external debug component.

Bit field descriptions

The EDPIDR0 is a 32-bit register.

Figure 5-19: EDPIDR0 bit assignments

31

0

7

8

Part_0

res0

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

519

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

RES0, [31:8]

RES0

Reserved.

Part_0, [7:0]

0x05

Least significant byte of the debug part number.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The EDPIDR0 can be accessed through the external debug interface, offset 

0xFE0

.

5.3.12 EDPIDR1, External Debug Peripheral Identification Register 1

The EDPIDR1 provides information to identify an external debug component.

Bit field descriptions

The EDPIDR1 is a 32-bit register.

Figure 5-20: EDPIDR1 bit assignments

31

0

3

4

Part_1

7

8

DES_0

res0

RES0, [31:8]

RES0

Reserved.

DES_0, [7:4]

0xB

Arm Limited. This is the least significant nibble of JEP106 ID code.

Part_1, [3:0]

0xD

Most significant nibble of the debug part number.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The EDPIDR1 can be accessed through the external debug interface, offset 

0xFE4

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

520

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.3.13 EDPIDR2, External Debug Peripheral Identification Register 2

The EDPIDR2 provides information to identify an external debug component.

Bit field descriptions

The EDPIDR2 is a 32-bit register.

Figure 5-21: EDPIDR2 bit assignments

31

0

3

4

DES_1

7

8

Revision

JEDEC

2

RES

0

RES0, [31:8]

RES0

Reserved.

Revision, [7:4]

0x3

r2p0.

JEDEC, [3]

0b1

RAO. Indicates a JEP106 identity code is used.

DES_1, [2:0]

0b011

Arm Limited. This is the most significant nibble of JEP106 ID code.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The EDPIDR2 can be accessed through the external debug interface, offset 

0xFE8

.

5.3.14 EDPIDR3, External Debug Peripheral Identification Register 3

The EDPIDR3 provides information to identify an external debug component.

Bit field descriptions

The EDPIDR3 is a 32-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

521

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-22: EDPIDR3 bit assignments

31

0

3

4

CMOD

7

8

REVAND

res0

RES0, [31:8]

RES0

Reserved.

REVAND, [7:4]

0x0

Part minor revision.

CMOD, [3:0]

0x0

Customer modified.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The EDPIDR3 can be accessed through the external debug interface, offset 

0xFEC

.

5.3.15 EDPIDR4, External Debug Peripheral Identification Register 4

The EDPIDR4 provides information to identify an external debug component.

Bit field descriptions

The EDPIDR4 is a 32-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

522

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-23: EDPIDR4 bit assignments

31

0

3

4

DES_2

7

8

SIZE

res0

RES0, [31:8]

RES0

Reserved.

SIZE, [7:4]

0x0

Size of the component. Log

2

 the number of 4KB pages from the start of the

component to the end of the component ID registers.

DES_2, [3:0]

0x4

Arm Limited This is the least significant nibble JEP106 continuation code.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The EDPIDR4 can be accessed through the external debug interface, offset 

0xFD0

.

5.3.16 EDPIDRn, External Debug Peripheral Identification Registers 5-7

No information is held in the Peripheral ID5, Peripheral ID6, and Peripheral ID7 Registers.

They are reserved for future use and are 

RES0

.

5.3.17 EDRCR, External Debug Reserve Control Register

The EDRCR is part of the Debug registers functional group. This register is used to allow imprecise

entry to Debug state and clear sticky bits in EDSCR.

Bit field descriptions

The EDRCR is a 32-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

523

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-24: EDRCR bit assignments

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

CBRRQ

CSPA

CSE

RES

0

RES0, [31:5]

RES0

Reserved.

CBRRQ, [4]

Allow imprecise entry to Debug state. The actions on writing to this bit are:

0

No action.

1

Allow imprecise entry to Debug state, for example by canceling

pending bus accesses. Setting this bit to 1 allows a debugger to

request imprecise entry to Debug state. An External Debug Request

debug event must be pending before the debugger sets this bit to 1.

CSPA, [3]

Clear Sticky Pipeline Advance. This bit is used to clear the EDSCR.PipeAdv bit to 0. The

actions on writing to this bit are:

0

No action.

1

Clear the EDSCR.PipeAdv bit to 0.

CSE, [2]

Clear Sticky Error. Used to clear the EDSCR cumulative error bits to 0. The actions on writing

to this bit are:

0

No action

1

Clear the EDSCR.{TXU, RXO, ERR} bits, and, if the core is in Debug

state, the EDSCR.ITO bit, to 0.

RES0, [1:0]

RES0

Reserved.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

The EDRCR can be accessed through the external debug interface, offset 

0x090

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

524

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.4 AArch32 PMU Registers

This chapter describes the AArch32 PMU registers and shows examples of how to use them.

5.4.1 AArch32 PMU register summary

The PMU event counters and their associated control registers are accessible in the AArch32

Execution state from the internal CP15 System register interface with 

MCR

 and 

MRC

 instructions for

32-bit registers and 

MCRR

 and 

MRRC

 for 64-bit registers.

The following table gives a summary of the Cortex

®

-A55 PMU registers in the AArch32 Execution

state. For those registers that are not described in this chapter, see the 

Arm

®

 Architecture Reference

Manual for A-profile architecture

.

Table 5-4: PMU register summary in the AArch32 Execution state

CRn Op1 CRm Op2 Name

Type Width Reset

Description

c9

0

c12 0

PMCR

RW 32

0x41453000

5.4.4 PMCR, Performance

Monitors Control Register

 on page

531

c9

0

c12 1

PMCNTENSET

RW 32

UNK

Performance Monitors Count

Enable Set Register

c9

0

c12 2

PMCNTENCLR

RW 32

UNK

Performance Monitors Count

Enable Clear Register

c9

0

c12 3

PMOVSR

RW 32

UNK

Performance Monitors Overflow

Flag Status Register

c9

0

c12 4

PMSWINC

WO 32

UNK

Performance Monitors Software

Increment Register

c9

0

c12 5

PMSELR

RW 32

UNK

Performance Monitors Event

Counter Selection Register

c9

0

c12 6

PMCEID0

RO

32

If L2 is present: 

0x67FFBFFF

. If L3 is

present: 

0x66FFBBFFF

. If L2 and L3 are

not present: 

0x663FBFFF

.

5.4.2 PMCEID0, Performance

Monitors Common Event

Identification Register 0

 on page

526

c9

0

c12 7

PMCEID1

RO

32

If L2 and L3 are present: 

0x00F2AE7F

. If L2

or L3 is present: 

0x00F2A07F

. If L2 and L3

are not present: 

0x00F2A07E

.

5.4.3 PMCEID1, Performance

Monitors Common Event

Identification Register 1

 on page

529

c9

0

c14 4

PMCEID2

RO

32

UNK

Reserved

c9

0

c14 5

PMCEID3

RO

32

UNK

Reserved

c9

0

c13 0

PMCCNTR[31:0] RW 32

UNK

c9

3

c13 0

PMCCNTR[63:0] RW 64

UNK

Performance Monitors Cycle

Count Register

c9

0

c13 1

PMXEVTYPER

RW 32

UNK

Performance Monitors Selected

Event Type Register

c9

0

c13 2

PMXEVCNTR

RW 32

UNK

Performance Monitors Selected

Event Count Register

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

525

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

CRn Op1 CRm Op2 Name

Type Width Reset

Description

c9

0

c14 0

PMUSERENR

RW 32

UNK

Performance Monitors User Enable

Register

c9

0

c14 1

PMINTENSET

RW 32

UNK

Performance Monitors Interrupt

Enable Set Register

c9

0

c14 2

PMINTENCLR

RW 32

UNK

Performance Monitors Interrupt

Enable Clear Register

c9

0

c14 3

PMOVSSET

RW 32

UNK

Performance Monitor Overflow

Flag Status Set Register

c14 0

c8

0

PMEVCNTR0

RW 32

UNK

c14 0

c8

1

PMEVCNTR1

RW 32

UNK

c14 0

c8

2

PMEVCNTR2

RW 32

UNK

c14 0

c8

3

PMEVCNTR3

RW 32

UNK

c14 0

c8

4

PMEVCNTR4

RW 32

UNK

c14 0

c8

5

PMEVCNTR5

RW 32

UNK

Performance Monitor Event Count

Registers

c14 0

c12 0

PMEVTYPER0

RW 32

UNK

c14 0

c12 1

PMEVTYPER1

RW 32

UNK

c14 0

c12 2

PMEVTYPER2

RW 32

UNK

c14 0

c12 3

PMEVTYPER3

RW 32

UNK

c14 0

c12 4

PMEVTYPER4

RW 32

UNK

c14 0

c12 5

PMEVTYPER5

RW 32

UNK

Performance Monitors Event Type

Registers

c14 0

c15 7

PMCCFILTR

RW 32

UNK

Performance Monitors Cycle

Count Filter Register

5.4.2 PMCEID0, Performance Monitors Common Event Identification

Register 0

The PMCEID0 defines which common architectural and common microarchitectural feature events

are implemented.

Bit field descriptions

Figure 5-25: PMCEID0 bit assignments

ID[31:0]

31

0

8 7

16 15

1

2

3

4

6

11

12

30 29 28 27 26 25 24 23 22 21 20 19 18 17

13

14

9

10

5

ID[31:0], [31:0]

Common architectural and microarchitectural feature events that can be counted by the

PMU event counters.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

526

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

The following table shows the PMCEID0 bit assignments with event implemented or not

implemented when the associated bit is set to 1 or 0. See the 

Arm

®

 Architecture Reference

Manual for A-profile architecture

 for more information about these events.

Table 5-5: PMU events

Bit Event

number

Event mnemonic

Description

[31]

0x1F

L1D_CACHE_ALLOCATE

L1 Data cache allocate:

0

This event is not implemented.

[30]

0x1E

CHAIN

Chain. For odd-numbered counters, counts once for each overflow of the preceding even-

numbered counter. For even-numbered counters, does not count:

1

This event is implemented.

[29]

0x1D

BUS_CYCLES

Bus cycle:

1

This event is implemented.

[28]

0x1C

TTBR_WRITE_RETIRED

TTBR write, architecturally executed, condition check pass - write to translation table base:

1

This event is implemented.

[27]

0x1B

INST_SPEC

Instruction speculatively executed:

1

This event is implemented.

[26]

0x1A

MEMORY_ERROR

Local memory error:

1

This event is implemented.

[25]

0x19

BUS_ACCESS

Bus access:

1

This event is implemented.

[24]

0x18

L2D_CACHE_WB

L2 Data cache Write-Back:

0

This event is not implemented if the Cortex

®

-A55 core has been configured

without an L2 cache.

1

This event is implemented if the Cortex

®

-A55 core has been configured with an

L2 cache.

[23]

0x17

L2D_CACHE_REFILL

L2 Data cache refill:

0

This event is not implemented if the Cortex

®

-A55 core has been configured

without an L2 and L3 cache. If configured with only an L3 cache, the L3 event will

become an L2 event.

1

This event is implemented if the Cortex

®

-A55 core has been configured with an

L2 or L3 cache.

[22]

0x16

L2D_CACHE

L2 Data cache access:

0

This event is not implemented if the Cortex

®

-A55 core has been configured

without an L2 and L3 cache. If configured with only an L3 cache, the L3 event will

become an L2 event.

1

This event is implemented if the Cortex

®

-A55 core has been configured with an

L2 or L3 cache.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

527

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Bit Event

number

Event mnemonic

Description

[21]

0x15

L1D_CACHE_WB

L1 Data cache Write-Back:

1

This event is implemented.

[20]

0x14

L1I_CACHE

L1 Instruction cache access:

1

This event is implemented.

[19]

0x13

MEM_ACCESS

Data memory access:

1

This event is implemented.

[18]

0x12

BR_PRED

Predictable branch speculatively executed:

1

This event is implemented.

[17]

0x11

CPU_CYCLES

Cycle:

1

This event is implemented.

[16]

0x10

BR_MIS_PRED

Mispredicted or not predicted branch speculatively executed:

1

This event is implemented.

[15]

0x0F

UNALIGNED_LDST_RETIRED Instruction architecturally executed, condition check pass - unaligned load or store:

1

This event is implemented.

[14]

0x0E

BR_RETURN_RETIRED

Instruction architecturally executed, condition check pass - procedure return:

1

This event is implemented.

[13]

0x0D

BR_IMMED_RETIRED

Instruction architecturally executed - immediate branch:

1

This event is implemented.

[12]

0x0C

PC_WRITE_RETIRED

Instruction architecturally executed, condition check pass - software change of the PC:

1

This event is implemented.

[11]

0x0B

CID_WRITE_RETIRED

Instruction architecturally executed, condition check pass - write to CONTEXTIDR:

1

This event is implemented.

[10]

0x0A

EXC_RETURN

Instruction architecturally executed, condition check pass - exception return:

1

This event is implemented.

[9]

0x09

EXC_TAKEN

Exception taken:

1

This event is implemented.

[8]

0x08

INST_RETIRED

Instruction architecturally executed:

1

This event is implemented.

[7]

0x07

ST_RETIRED

Instruction architecturally executed, condition check pass - store:

1

This event is implemented.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

528

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Bit Event

number

Event mnemonic

Description

[6]

0x06

LD_RETIRED

Instruction architecturally executed, condition check pass - load:

1

This event is implemented.

[5]

0x05

L1D_TLB_REFILL

L1 Data TLB refill:

1

This event is implemented.

[4]

0x04

L1D_CACHE

L1 Data cache access:

1

This event is implemented.

[3]

0x03

L1D_CACHE_REFILL

L1 Data cache refill:

1

This event is implemented.

[2]

0x02

L1I_TLB_REFILL

L1 Instruction TLB refill:

1

This event is implemented.

[1]

0x01

L1I_CACHE_REFILL

L1 Instruction cache refill:

1

This event is implemented.

[0]

0x00

SW_INCR

Instruction architecturally executed, condition check pass - software increment:

1

This event is implemented.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

5.4.3 PMCEID1, Performance Monitors Common Event Identification

Register 1

The PMCEID1 defines which common architectural and common microarchitectural feature events

are implemented.

Bit field descriptions

Figure 5-26: PMCEID1 bit assignments

ID[63:32]

31

0

8 7

16 15

1

2

3

4

6

11

12

30 29 28 27 26 25 24 23 22 21 20 19 18 17

13

14

9

10

5

ID[63:32], [31:0]

Common architectural and microarchitectural feature events that can be counted by the

PMU event counters.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

529

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

For each bit described in the following table, the event is implemented if the bit is set to 1, or

not implemented if the bit is set to 0.

Table 5-6: PMU common events

Bit

Event number

Event mnemonic

Description

[24]

0x38

REMOTE_ACCESS_RD

Access to another socket in a multi-socket system.

1

This event is implemented.

[23]

0x37

LL_CACHE_MISS_RD

Last Level cache miss, read.

1

This event is implemented.

[22]

0x36

LL_CACHE_RD

Last Level cache access, read.

1

This event is implemented.

[21]

0x35

ITLB_WALK

Access to instruction TLB that caused a page table walk.

1

This event is implemented.

[20]

0x34

DTLB_WALK

Access to data TLB that caused a page table walk.

1

This event is implemented.

[16]

0x30

L2I_TLB

Attributable Level 2 instruction TLB access.

0

This event is not implemented.

[15]

0x2F

L2D_TLB

Attributable Level 2 data or unified TLB access.

1

This event is implemented.

[14]

0x2E

L2I_TLB_REFILL

Attributable Level 2 instruction TLB refill.

0

This event is not implemented.

[13]

0x2D

L2D_TLB_REFILL

Attributable Level 2 data or unified TLB refill.

1

This event is implemented.

[12]

0x2C

L3D_CACHE_WB

Attributable Level 3 data or unified cache write-back.

0

This event is not implemented.

[11]

0x2B

L3D_CACHE

Attributable Level 3 data or unified cache access.

1

This event is implemented if L2 and L3 are present.

0

This event is not implemented if L2 and L3 are not present.

[10]

0x2A

L3D_CACHE_REFILL

Attributable Level 3 data or unified cache refill.

1

This event is implemented if L2 and L3 are present.

0

This event is not implemented if L2 and L3 are not present.

[9]

0x29

L3D_CACHE_ALLOCATE

Attributable Level 3 data or unified cache allocation without refill.

1

This event is implemented if L2 and L3 are present.

0

This event is not implemented if L2 and L3 are not present.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

530

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Bit

Event number

Event mnemonic

Description

[8]

0x28

L2I_CACHE_REFILL

Attributable Level 2 instruction cache refill.

0

This event is not implemented.

[7]

0x27

L2I_CACHE

Attributable Level 2 instruction cache access.

0

This event is not implemented.

[6]

0x26

L1I_TLB

Level 1 instruction TLB access.

1

This event is implemented.

[5]

0x25

L1D_TLB

Level 1 data or unified TLB access.

1

This event is implemented.

[4]

0x24

STALL_BACKEND

No operation issued due to backend.

1

This event is implemented.

[3]

0x23

STALL_FRONTEND

No operation issued due to the frontend.

1

This event is implemented.

[2]

0x22

BR_MIS_PRED_RETIRED

Instruction architecturally executed, mispredicted branch.

1

This event is implemented.

[1]

0x21

BR_RETIRED

Instruction architecturally executed, branch.

1

This event is implemented.

[0]

0x20

L2D_CACHE_ALLOCATE

Level 2 data cache allocation without refill.

1

This event is implemented.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

5.4.4 PMCR, Performance Monitors Control Register

The PMCR provides details of the Performance Monitors implementation, including the number of

counters implemented, and configures and controls the counters.

Bit field descriptions

PMCR is a 32-bit register, and is part of the Performance Monitors registers functional group.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

531

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-27: PMCR bit assignments

31

0

5

6

7

1

2

10

11

15

16

23

IMP

X

3

4

24

IDCODE

N

E

P

C

D

DP
LC

res0

IMP, [31:24]

Indicates the implementer code. The value is:

0x41

ASCII character 'A' - implementer is Arm Limited.

IDCODE, [23:16]

Identification code. The value is:

0x45

Cortex

®

-A55 core.

N, [15:11]

Identifies the number of event counters implemented.

0b00110

The core implements six event counters.

RES0, [10:7]

RES0

Reserved.

LC, [6]

Long cycle count enable. Determines which PMCCNTR bit generates an overflow recorded in

PMOVSR[31]. The overflow event is generated on a 32-bit or 64-bit boundary. The possible

values are:

0b0

Overflow event is generated on a 32-bit boundary, when an

increment changes PMCCNTR[31] from 1 to 0. This is the reset

value.

0b1

Overflow event is generated on a 64-bit boundary, when an

increment changes PMCCNTR[63] from 1 to 0.

DP, [5]

Disable cycle counter CCNT when event counting is prohibited. The possible values are:

0b0

Cycle counter operates regardless of the non-invasive debug

authentication settings. This is the reset value.

0b1

Cycle counter is disabled if non-invasive debug is not permitted and

enabled.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

532

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

X, [4]

Export enable. This bit permits events to be exported to another debug device, such as a

trace macrocell, over an event bus. The possible values are:

0b0

Export of events is disabled. This is the reset value.

0b1

Export of events is enabled.

No events are exported when counting is prohibited.

This field does not affect the generation of Performance Monitors overflow interrupt

requests or signaling to a cross-trigger interface (CTI) that can be implemented as signals

exported from the PE.

When this register has an architecturally defined reset value, if this field is implemented as an

RW field, it resets to 0.

D, [3]

Clock divider. The possible values are:

0b0

When enabled, counter CCNT counts every clock cycle. This is the

reset value.

0b1

When enabled, counter CCNT counts once every 64 clock cycles.

C, [2]

Cycle counter reset. This bit is WO. The effects of writing to this bit are:

0b0

No action. This is the reset value.

0b1

Reset PMCCNTR to zero.

This bit is always RAZ.

Resetting PMCCNTR does not clear the PMCCNTR overflow bit to 0. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

 for more information.

P, [1]

Event counter reset. This bit is WO. The effects of writing to this bit are:

0

No action. This is the reset value.

0b1

Reset all event counters accessible in the current EL, not including

PMCCNTR, to zero.

This bit is always RAZ.

In Non-secure EL0 and EL1, a write of 1 to this bit does not reset event counters that

HDCR.HPMN or MDCR_EL2.HPMN reserves for EL2 use.

In EL2 and EL3, a write of 1 to this bit resets all the event counters.

Resetting the event counters does not clear any overflow bits to 0.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

533

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

E, [0]

Enable. The possible values are:

0b0

All counters that are accessible at Non-secure EL1, including

PMCCNTR, are disabled. This is the reset value.

0b1

When this register has an architecturally defined reset value, this field

resets to 0.

This bit is RW.

This bit does not affect the operation of event counters that HDCR.HPMN or

MDCR_EL2.HPMN reserves for EL2 use.

When this register has an architecturally defined reset value, this field resets to 0.

Configurations

AArch32 System register PMCR is architecturally mapped to AArch64 System register

PMCR_EL0. See 

5.5.4 PMCR_EL0, Performance Monitors Control Register, EL0

 on page

541.

AArch32 System register PMCR bits [6:0] are architecturally mapped to External register

PMCR_EL0[6:0].

There is one instance of this register that is used in both Secure and Non-secure states.

This register is in the Warm reset domain. Some or all RW fields of this register have defined

reset values. On a Warm or Cold reset these apply only if the PE resets into an Exception

level that is using AArch32. Otherwise, on a Warm or Cold reset RW fields in this register

reset to architecturally 

UNKNOWN

 values.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

5.5 AArch64 PMU registers

This chapter describes the AArch64 PMU registers and shows examples of how to use them.

5.5.1 AArch64 PMU register summary

The PMU event counters and their associated control registers are accessible in the AArch64

Execution state with 

MRS

 and 

MSR

 instructions.

The following table gives a summary of the Cortex

®

-A55 PMU registers in the AArch64 Execution

state. For those registers that are not described in this chapter, see the 

Arm

®

 Architecture Reference

Manual for A-profile architecture

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

534

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Table 5-7: PMU register summary in the AArch64 Execution state

Name

Type

Width

Reset

Description

PMCR_EL0

RW

32

0x41453000

5.5.4 PMCR_EL0,

Performance Monitors

Control Register, EL0

 on

page 541

PMCNTENSET_EL0

RW

32

UNK

Performance Monitors

Count Enable Set

Register

PMCNTENCLR_EL0

RW

32

UNK

Performance Monitors

Count Enable Clear

Register

PMOVSCLR_EL0

RW

32

UNK

Performance Monitors

Overflow Flag Status

Register

PMSWINC_EL0

WO

32

UNK

Performance Monitors

Software Increment

Register

PMSELR_EL0

RW

32

UNK

Performance Monitors

Event Counter Selection

Register

PMCEID0_EL0

RO

64

UNK

5.5.2 PMCEID0_EL0,

Performance Monitors

Common Event

Identification Register 0,

EL0

 on page 536

PMCEID1_EL0

RO

64

UNK

5.5.3 PMCEID1_EL0,

Performance Monitors

Common Event

Identification Register 1,

EL0

 on page 539

PMCCNTR_EL0

RW

64

UNK

Performance Monitors

Cycle Count Register

PMXEVTYPER_EL0

RW

32

UNK

Performance Monitors

Selected Event Type and

Filter Register

PMCCFILTR_EL0

RW

32

UNK

Performance Monitors

Cycle Count Filter

Register

PMXEVCNTR_EL0

RW

32

UNK

Performance Monitors

Selected Event Count

Register

PMUSERENR_EL0

RW

32

UNK

Performance Monitors

User Enable Register

PMINTENSET_EL1

RW

32

UNK

Performance Monitors

Interrupt Enable Set

Register

PMINTENCLR_EL1

RW

32

UNK

Performance Monitors

Interrupt Enable Clear

Register

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

535

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Name

Type

Width

Reset

Description

PMOVSSET_EL0

RW

32

UNK

Performance Monitors

Overflow Flag Status Set

Register

PMEVCNTR0_EL0

RW

32

UNK

PMEVCNTR1_EL0

RW

32

UNK

PMEVCNTR2_EL0

RW

32

UNK

PMEVCNTR3_EL0

RW

32

UNK

PMEVCNTR4_EL0

RW

32

UNK

PMEVCNTR5_EL0

RW

32

UNK

Performance Monitors

Event Count Registers

PMEVTYPER0_EL0

RW

32

UNK

PMEVTYPER1_EL0

RW

32

UNK

PMEVTYPER2_EL0

RW

32

UNK

PMEVTYPER3_EL0

RW

32

UNK

PMEVTYPER4_EL0

RW

32

UNK

PMEVTYPER5_EL0

RW

32

UNK

Performance Monitors

Event Type Registers

PMCCFILTR_EL0

RW

32

UNK

Performance Monitors

Cycle Count Filter

Register

5.5.2 PMCEID0_EL0, Performance Monitors Common Event Identification

Register 0, EL0

The PMCEID0_EL0 defines which common architectural and common microarchitectural feature

events are implemented.

Bit field descriptions

Figure 5-28: PMCEID0_EL0 bit assignments

63

0

RES

0

ID[31:0]

31

32

ID[31:0], [31:0]

Common architectural and microarchitectural feature events that can be counted by the

PMU event counters.

The following table shows the PMCEID0_EL0 bit assignments with event implemented or not

implemented when the associated bit is set to 1 or 0. See the 

Arm

®

 Architecture Reference

Manual for A-profile architecture

 for more information about these events.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

536

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Table 5-8: PMU events

Bit Event

number

Event mnemonic

Description

[31]

0x1F

L1D_CACHE_ALLOCATE

L1 Data cache allocate:

0

This event is not implemented.

[30]

0x1E

CHAIN

Chain. For odd-numbered counters, counts once for each overflow of the preceding even-

numbered counter. For even-numbered counters, does not count:

1

This event is implemented.

[29]

0x1D

BUS_CYCLES

Bus cycle:

1

This event is implemented.

[28]

0x1C

TTBR_WRITE_RETIRED

TTBR write, architecturally executed, condition check pass - write to translation table base:

1

This event is implemented.

[27]

0x1B

INST_SPEC

Instruction speculatively executed:

1

This event is implemented.

[26]

0x1A

MEMORY_ERROR

Local memory error:

1

This event is implemented.

[25]

0x19

BUS_ACCESS

Bus access:

1

This event is implemented.

[24]

0x18

L2D_CACHE_WB

L2 unified cache Write-Back:

0

This event is not implemented if the Cortex

®

-A55 core has been configured

without an L2 cache.

1

This event is implemented if the Cortex

®

-A55 core has been configured with an

L2 cache.

[23]

0x17

L2D_CACHE_REFILL

L2 unified cache refill:

0

This event is not implemented if the Cortex

®

-A55 core has been configured

without an L2 and L3 cache. If configured with only an L3 cache, the L3 event will

become an L2 event.

1

This event is implemented if the Cortex

®

-A55 core has been configured with an

L2 or L3 cache.

[22]

0x16

L2D_CACHE

L2 unified cache access:

0

This event is not implemented if the Cortex

®

-A55 core has been configured

without an L2 and L3 cache. If configured with only an L3 cache, the L3 event will

become an L2 event.

1

This event is implemented if the Cortex

®

-A55 core has been configured with an

L2 or L3 cache.

[21]

0x15

L1D_CACHE_WB

L1 Data cache Write-Back:

1

This event is implemented.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

537

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Bit Event

number

Event mnemonic

Description

[20]

0x14

L1I_CACHE

L1 Instruction cache access:

1

This event is implemented.

[19]

0x13

MEM_ACCESS

Data memory access:

1

This event is implemented.

[18]

0x12

BR_PRED

Predictable branch speculatively executed:

1

This event is implemented.

[17]

0x11

CPU_CYCLES

Cycle:

1

This event is implemented.

[16]

0x10

BR_MIS_PRED

Mispredicted or not predicted branch speculatively executed:

1

This event is implemented.

[15]

0x0F

UNALIGNED_LDST_RETIRED Instruction architecturally executed, condition check pass - unaligned load or store:

1

This event is implemented.

[14]

0x0E

BR_RETURN_RETIRED

Instruction architecturally executed, condition check pass - procedure return:

1

This event is implemented.

[13]

0x0D

BR_IMMED_RETIRED

Instruction architecturally executed - immediate branch:

1

This event is implemented.

[12]

0x0C

PC_WRITE_RETIRED

Instruction architecturally executed, condition check pass - software change of the PC:

1

This event is implemented.

[11]

0x0B

CID_WRITE_RETIRED

Instruction architecturally executed, condition check pass - write to CONTEXTIDR:

1

This event is implemented.

[10]

0x0A

EXC_RETURN

Instruction architecturally executed, condition check pass - exception return:

1

This event is implemented.

[9]

0x09

EXC_TAKEN

Exception taken:

1

This event is implemented.

[8]

0x08

INST_RETIRED

Instruction architecturally executed:

1

This event is implemented.

[7]

0x07

ST_RETIRED

Instruction architecturally executed, condition check pass - store:

1

This event is implemented.

[6]

0x06

LD_RETIRED

Instruction architecturally executed, condition check pass - load:

1

This event is implemented.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

538

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Bit Event

number

Event mnemonic

Description

[5]

0x05

L1D_TLB_REFILL

L1 Data TLB refill:

1

This event is implemented.

[4]

0x04

L1D_CACHE

L1 Data cache access:

1

This event is implemented.

[3]

0x03

L1D_CACHE_REFILL

L1 Data cache refill:

1

This event is implemented.

[2]

0x02

L1I_TLB_REFILL

L1 Instruction TLB refill:

1

This event is implemented.

[1]

0x01

L1I_CACHE_REFILL

L1 Instruction cache refill:

1

This event is implemented.

[0]

0x00

SW_INCR

Instruction architecturally executed, condition check pass - software increment:

1

This event is implemented.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

5.5.3 PMCEID1_EL0, Performance Monitors Common Event Identification

Register 1, EL0

The PMCEID1_EL0 defines which common architectural and common microarchitectural feature

events are implemented.

Bit field descriptions

Figure 5-29: PMCEID1_EL0 bit assignments

63

0

RES

0

24

ID[49:32]

25

19

17

ID[24:20], [16:0]

Common architectural and microarchitectural feature events that can be counted by the

PMU event counters.

For each bit described in the following table, the event is implemented if the bit is set to 1, or

not implemented if the bit is set to 0.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

539

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Table 5-9: PMU common events

Bit

Event number

Event mnemonic

Description

[24]

0x38

REMOTE_ACCESS_RD

Access to another socket in a multi-socket system.

1

This event is implemented.

[23]

0x37

LL_CACHE_MISS_RD

Last Level cache miss, read.

1

This event is implemented.

[22]

0x36

LL_CACHE_RD

Last Level cache access, read.

1

This event is implemented.

[21]

0x35

ITLB_WALK

Access to instruction TLB that caused a page table walk.

1

This event is implemented.

[20]

0x34

DTLB_WALK

Access to data TLB that caused a page table walk.

1

This event is implemented.

[16]

0x30

L2I_TLB

Attributable Level 2 instruction TLB access.

0

This event is not implemented.

[15]

0x2F

L2D_TLB

Attributable Level 2 data or unified TLB access.

1

This event is implemented.

[14]

0x2E

L2I_TLB_REFILL

Attributable Level 2 instruction TLB refill.

0

This event is not implemented.

[13]

0x2D

L2D_TLB_REFILL

Attributable Level 2 data or unified TLB refill.

1

This event is implemented.

[12]

0x2C

L3D_CACHE_WB

Attributable Level 3 unified cache write-back.

0

This event is not implemented.

[11]

0x2B

L3D_CACHE

Attributable Level 3 unified cache access.

1

This event is implemented if L2 and L3 are present.

0

This event is not implemented if L2 and L3 are not present.

[10]

0x2A

L3D_CACHE_REFILL

Attributable Level 3 unified cache refill.

1

This event is implemented if L2 and L3 are present.

0

This event is not implemented if L2 and L3 are not present.

[9]

0x29

L3D_CACHE_ALLOCATE

Attributable Level 3 unified cache allocation without refill.

1

This event is implemented if L2 and L3 are present.

0

This event is not implemented if L2 and L3 are not present.

[8]

0x28

L2I_CACHE_REFILL

Attributable Level 2 instruction cache refill.

0

This event is not implemented.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

540

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Bit

Event number

Event mnemonic

Description

[7]

0x27

L2I_CACHE

Attributable Level 2 instruction cache access.

0

This event is not implemented.

[6]

0x26

L1I_TLB

Level 1 instruction TLB access.

1

This event is implemented.

[5]

0x25

L1D_TLB

Level 1 data TLB access.

1

This event is implemented.

[4]

0x24

STALL_BACKEND

No operation issued due to backend.

1

This event is implemented.

[3]

0x23

STALL_FRONTEND

No operation issued due to the frontend.

1

This event is implemented.

[2]

0x22

BR_MIS_PRED_RETIRED

Instruction architecturally executed, mispredicted branch.

1

This event is implemented.

[1]

0x21

BR_RETIRED

Instruction architecturally executed, branch.

1

This event is implemented.

[0]

0x20

L2D_CACHE_ALLOCATE

Level 2 data cache allocation without refill.

1

This event is implemented.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

5.5.4 PMCR_EL0, Performance Monitors Control Register, EL0

The PMCR_EL0 provides details of the Performance Monitors implementation, including the

number of counters implemented, and configures and controls the counters.

Bit field descriptions

Figure 5-30: PMCR_EL0 bit assignments

E

31

24 23

16 15

11 10

6 5 4 3 2 1 0

IMP

IDCODE

N

DP X D C P

LC

7

RES

0

IMP, [31:24]

Implementer code:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

541

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

0x41

Arm.

This is a read-only field.

IDCODE, [23:16]

Identification code:

0x45

Cortex

®

-A55.

This is a read-only field.

N, [15:11]

Number of event counters.

0b00110

Six counters.

RES0, [10:7]

RES0

Reserved.

LC, [6]

Long cycle count enable. Determines which PMCCNTR_EL0 bit generates an overflow

recorded in PMOVSR[31]. The possible values are:

0

Overflow on increment that changes PMCCNTR_EL0[31] from 1 to

0.

1

Overflow on increment that changes PMCCNTR_EL0[63] from 1 to

0.

DP, [5]

Disable cycle counter, PMCCNTR_EL0 when event counting is prohibited:

0

Cycle counter operates regardless of the non-invasive debug

authentication settings. This is the reset value.

1

Cycle counter is disabled if non-invasive debug is not permitted and

enabled.

This bit is read/write.

X, [4]

Export enable. This bit permits events to be exported to another debug device, such as a

trace macrocell, over an event bus:

0

Export of events is disabled. This is the reset value.

1

Export of events is enabled.

This bit is read/write and does not affect the generation of Performance Monitors interrupts

on the nPMUIRQ pin.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

542

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

D, [3]

Clock divider:

0

When enabled, PMCCNTR_EL0 counts every clock cycle. This is the

reset value.

1

When enabled, PMCCNTR_EL0 counts every 64 clock cycles.

This bit is read/write.

C, [2]

Clock counter reset. This bit is WO. The effects of writing to this bit are:

0

No action. This is the reset value.

1

Reset PMCCNTR_EL0 to 0.

This bit is always RAZ.

Resetting PMCCNTR_EL0 does not clear the PMCCNTR_EL0 overflow bit to 0. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

 for more information.

P, [1]

Event counter reset. This bit is WO. The effects of writing to this bit are:

0

No action. This is the reset value.

1

Reset all event counters, not including PMCCNTR_EL0, to zero.

This bit is always RAZ.

In Non-secure EL0 and EL1, a write of 1 to this bit does not reset event counters that

MDCR_EL2.HPMN reserves for EL2 use.

In EL2 and EL3, a write of 1 to this bit resets all the event counters.

Resetting the event counters does not clear any overflow bits to 0.

E, [0]

Enable. The possible values of this bit are:

0

All counters, including PMCCNTR_EL0, are disabled. This is the reset

value.

1

All counters are enabled.

This bit is RW.

In Non-secure EL0 and EL1, this bit does not affect the operation of event counters that

MDCR_EL2.HPMN reserves for EL2 use.

On Warm reset, the field resets to 0.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

543

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Configurations

AArch64 System register PMCR_EL0 is architecturally mapped to AArch32 System register

PMCR.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

5.6 Memory-mapped PMU registers

This chapter describes the memory-mapped PMU registers and shows examples of how to use

them.

5.6.1 Memory-mapped PMU register summary

There are PMU registers that are accessible through the external debug interface.

These registers are listed in the following table. For those registers that are not described in this

chapter, see the 

Arm

®

 Architecture Reference Manual for A-profile architecture

.

Table 5-10: Memory-mapped PMU register summary

Offset

Name

Type

Description

0x000

PMEVCNTR0_EL0

RW

Performance Monitor Event Count Register

0

0x004

-

-

Reserved

0x008

PMEVCNTR1_EL0

RW

Performance Monitor Event Count Register

1

0x00C

-

-

Reserved

0x010

PMEVCNTR2_EL0

RW

Performance Monitor Event Count Register

2

0x014

-

-

Reserved

0x018

PMEVCNTR3_EL0

RW

Performance Monitor Event Count Register

3

0x01C

-

-

Reserved

0x020

PMEVCNTR4_EL0

RW

Performance Monitor Event Count Register

4

0x024

-

-

Reserved

0x028

PMEVCNTR5_EL0

RW

Performance Monitor Event Count Register

5

0x02C-0x0F4

-

-

Reserved

0x0F8

PMCCNTR_EL0[31:0]

RW

0x0FC

PMCCNTR_EL0[63:32]

RW

Performance Monitor Cycle Count Register

0x200

PMPCSR[31:0]

0x204

PMPCSR[63:32]

RO

Program Counter Sample Register

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

544

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Offset

Name

Type

Description

0x208

PMCID1SR

RO

CONTEXTIDR_EL1 Sample Register

0x20C

PMVIDSR

RO

VMID Sample Register

0x220

PMPCSR[31:0]

0x224

PMPCSR[63:32]

RO

Program Counter Sample Register (alias)

0x228

PMCID1SR

RO

CONTEXTIDR_EL1 Sample Register (alias)

0x22C

PMCID2SR

RO

CONTEXTIDR_EL2 Sample Register

0x230-0x3FC

-

-

Reserved

0x418-0x478

-

-

Reserved

0x47C

PMCCFILTR_EL0

RW

Performance Monitor Cycle Count Filter

Register

0x600

PMPCSSR_LO

RO

0x604

PMPCSSR_HI

RO

5.7.2 PMPCSSR, PMU Snapshot Program

Counter Sample Register

 on page 556

0x608

PMCIDSSR

RO

5.7.3 PMCIDSSR, PMU Snapshot

CONTEXTIDR_EL1 Sample Register

 on page

557

0x60C

PMCID2SSR

RO

5.7.4 PMCID2SSR, PMU Snapshot

CONTEXTIDR_EL2 Sample Register

 on page

557

0x610

PMSSSR

RO

5.7.5 PMSSSR, PMU Snapshot Status

Register

 on page 557

0x614

PMOVSSR

RO

5.7.6 PMOVSSR, PMU Snapshot Overflow

Status Register

 on page 558

0x618

PMCCNTSR_LO

RO

0x61C

PMCCNTSR_HI

RO

5.7.7 PMCCNTSR, PMU Snapshot Cycle

Counter Register

 on page 559

0x620

+ 4×n

PMEVCNTSRn

RO

5.7.8 PMEVCNTSRn, PMU Snapshot Cycle

Counter Registers 0-5

 on page 559

0x6F0

PMSSCR

WO

5.7.9 PMSSCR, PMU Snapshot Capture

Register

 on page 559

0xC00

PMCNTENSET_EL0

RW

Performance Monitor Count Enable Set

Register

0xC04-0xC1C

-

-

Reserved

0xC20

PMCNTENCLR_EL0

RW

Performance Monitor Count Enable Clear

Register

0xC24-0xC3C

-

-

Reserved

0xC40

PMINTENSET_EL1

RW

Performance Monitor Interrupt Enable Set

Register

0xC44-0xC5C

-

-

Reserved

0xC60

PMINTENCLR_EL1

RW

Performance Monitor Interrupt Enable Clear

Register

0xC64-0xC7C

-

-

Reserved

0xC80

PMOVSCLR_EL0

RW

Performance Monitor Overflow Flag Status

Register

0xC84-0xC9C

-

-

Reserved

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

545

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Offset

Name

Type

Description

0xCA0

PMSWINC_EL0

WO

Performance Monitor Software Increment

Register

0xCA4-0xCBC

-

-

Reserved

0xCC0

PMOVSSET_EL0

RW

Performance Monitor Overflow Flag Status

Set Register

0xCC4-0xDFC

-

-

Reserved

0xE00

PMCFGR

RO

5.6.2 PMCFGR, Performance Monitors

Configuration Register

 on page 547

0xE04

PMCR_EL0

RW

Performance Monitors Control Register.

This register is distinct from the PMCR_EL0

System register. It does not have the same

value.

0xE08-0xE1C

-

-

Reserved

0xE20

PMCEID0

RO

5.4.2 PMCEID0, Performance Monitors

Common Event Identification Register 0

 on

page 526

0xE24

PMCEID1

RO

5.4.3 PMCEID1, Performance Monitors

Common Event Identification Register 1

 on

page 529

0xE28

PMCEID2

RO

Reserved

0xE2C

PMCEID3

RO

Reserved

0xFA4

-

-

Reserved

0xFA8

PMDEVAFF0

RO

3.2.90 MPIDR_EL1, Multiprocessor Affinity

Register, EL1

 on page 355

0xFAC

PMDEVAFF1

RO

3.2.90 MPIDR_EL1, Multiprocessor Affinity

Register, EL1

 on page 355

0xFB8

PMAUTHSTATUS

RO

Performance Monitor Authentication Status

Register

0xFBC

PMDEVARCH

RO

Performance Monitor Device Architecture

Register

0xFC0-0xFC8

-

-

Reserved

0xFCC

PMDEVTYPE

RO

Performance Monitor Device Type Register

0xFD0

PMPIDR4

RO

5.6.11 PMPIDR4, Performance Monitors

Peripheral Identification Register 4

 on page

554

0xFD4

PMPIDR5

RO

0xFD8

PMPIDR6

RO

0xFDC

PMPIDR7

RO

5.6.12 PMPIDRn, Performance Monitors

Peripheral Identification Register 5-7

 on

page 555

0xFE0

PMPIDR0

RO

5.6.7 PMPIDR0, Performance Monitors

Peripheral Identification Register 0

 on page

551

0xFE4

PMPIDR1

RO

5.6.8 PMPIDR1, Performance Monitors

Peripheral Identification Register 1

 on page

552

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

546

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Offset

Name

Type

Description

0xFE8

PMPIDR2

RO

5.6.9 PMPIDR2, Performance Monitors

Peripheral Identification Register 2

 on page

552

0xFEC

PMPIDR3

RO

5.6.10 PMPIDR3, Performance Monitors

Peripheral Identification Register 3

 on page

553

0xFF0

PMCIDR0

RO

5.6.3 PMCIDR0, Performance Monitors

Component Identification Register 0

 on page

548

0xFF4

PMCIDR1

RO

5.6.4 PMCIDR1, Performance Monitors

Component Identification Register 1

 on page

549

0xFF8

PMCIDR2

RO

5.6.5 PMCIDR2, Performance Monitors

Component Identification Register 2

 on page

549

0xFFC

PMCIDR3

RO

5.6.6 PMCIDR3, Performance Monitors

Component Identification Register 3

 on page

550

5.6.2 PMCFGR, Performance Monitors Configuration Register

The PMCFGR contains PMU specific configuration data.

Bit field descriptions

The PMCFGR is a 32-bit register.

Figure 5-31: PMCFGR bit assignments

31

17 16 15 14 13

8 7

0

N

EX

CCD

CC

Size

RES

0

RES0, [31:17]

RES0

Reserved.

EX, [16]

Export supported. The value is:

1

Export is supported. PMCR_EL0.EX is read/write.

CCD, [15]

Cycle counter has pre-scale. The value is:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

547

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

1

PMCR_EL0.D is read/write.

CC, [14]

Dedicated cycle counter supported. The value is:

1

Dedicated cycle counter is supported.

Size, [13:8]

Counter size. The value is:

0b111111

64-bit counters.

N, [7:0]

Number of event counters. The value is:

0x06

Six counters.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The PMCFGR can be accessed through the external debug interface, offset 

0xE00

.

5.6.3 PMCIDR0, Performance Monitors Component Identification Register

0

The PMCIDR0 provides information to identify a Performance Monitor component.

Bit field descriptions

The PMCIDR0 is a 32-bit register.

Figure 5-32: PMCIDR0 bit assignments

31

0

PRMBL_0

7

8

RES

0

RES0, [31:8]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

548

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

PRMBL_0, [7:0]

0x0D

Preamble byte 0.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The PMCIDR0 can be accessed through the external debug interface, offset 

0xFF0

.

5.6.4 PMCIDR1, Performance Monitors Component Identification Register

1

The PMCIDR1 provides information to identify a Performance Monitor component.

Bit field descriptions

The PMCIDR1 is a 32-bit register.

Figure 5-33: PMCIDR1 bit assignments

31

0

PRMBL_1

7

8

3

4

CLASS

RES

0

RES0, [31:8]

RES0

Reserved.

CLASS, [7:4]

0x9

Debug component.

PRMBL_1, [3:0]

0x0

Preamble byte 1.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The PMCIDR1 can be accessed through the external debug interface, offset 

0xFF4

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

549

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.6.5 PMCIDR2, Performance Monitors Component Identification Register

2

The PMCIDR2 provides information to identify a Performance Monitor component.

Bit field descriptions

The PMCIDR2 is a 32-bit register.

Figure 5-34: PMCIDR2 bit assignments

31

0

PRMBL_2

7

8

RES

0

RES0, [31:8]

RES0

Reserved.

PRMBL_2, [7:0]

0x05

Preamble byte 2.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The PMCIDR2 can be accessed through the external debug interface, offset 

0xFF8

.

5.6.6 PMCIDR3, Performance Monitors Component Identification Register

3

The PMCIDR3 provides information to identify a Performance Monitor component.

Bit field descriptions

The PMCIDR3 is a 32-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

550

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-35: PMCIDR3 bit assignments

31

0

PRMBL_3

7

8

RES

0

RES0, [31:8]

RES0

Reserved.

PRMBL_3, [7:0]

0xB1

Preamble byte 3.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The PMCIDR3 can be accessed through the external debug interface, offset 

0xFFC

.

5.6.7 PMPIDR0, Performance Monitors Peripheral Identification Register 0

The PMPIDR0 provides information to identify a Performance Monitor component.

Bit field descriptions

The PMPIDR0 is a 32-bit register.

Figure 5-36: PMPIDR0 bit assignments

31

0

7

8

Part_0

RES

0

RES0, [31:8]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

551

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Part_0, [7:0]

0x05

Least significant byte of the performance monitor part number.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The PMPIDR0 can be accessed through the external debug interface, offset 

0xFE0

.

5.6.8 PMPIDR1, Performance Monitors Peripheral Identification Register 1

The PMPIDR1 provides information to identify a Performance Monitor component.

Bit field descriptions

The PMPIDR1 is a 32-bit register.

Figure 5-37: PMPIDR1 bit assignments

31

0

3

4

Part_1

7

8

DES_0

RES

0

RES0, [31:8]

RES0

Reserved.

DES_0, [7:4]

0xB

Arm Limited. This is the least significant nibble of JEP106 ID code.

Part_1, [3:0]

0xD

Most significant nibble of the performance monitor part number.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The PMPIDR1 can be accessed through the external debug interface, offset 

0xFE4

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

552

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.6.9 PMPIDR2, Performance Monitors Peripheral Identification Register 2

The PMPIDR2 provides information to identify a Performance Monitor component.

Bit field descriptions

The PMPIDR2 is a 32-bit register.

Figure 5-38: PMPIDR2 bit assignments

31

0

3

4

DES_1

7

8

Revision

JEDEC

2

RES

0

RES0, [31:8]

RES0

Reserved.

Revision, [7:4]

0x3

r2p0.

JEDEC, [3]

0b1

RAO. Indicates a JEP106 identity code is used.

DES_1, [2:0]

0b011

Arm Limited. This is the most significant nibble of JEP106 ID code.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The PMPIDR2 can be accessed through the external debug interface, offset 

0xFE8

.

5.6.10 PMPIDR3, Performance Monitors Peripheral Identification Register

3

The PMPIDR3 provides information to identify a Performance Monitor component.

Bit field descriptions

The PMPIDR3 is a 32-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

553

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-39: PMPIDR3 bit assignments

31

0

3

4

CMOD

7

8

REVAND

RES

0

RES0, [31:8]

RES0

Reserved.

REVAND, [7:4]

0x0

Part minor revision.

CMOD, [3:0]

0x0

Customer modified.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The PMPIDR3 can be accessed through the external debug interface, offset 

0xFEC

.

5.6.11 PMPIDR4, Performance Monitors Peripheral Identification Register

4

The PMPIDR4 provides information to identify a Performance Monitor component.

Bit field descriptions

The PMPIDR4 is a 32-bit register.

Figure 5-40: PMPIDR4 bit assignments

31

0

3

4

DES_2

7

8

Size

RES

0

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

554

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

RES0, [31:8]

RES0

Reserved.

Size, [7:4]

0x0

Size of the component. Log

2

 the number of 4KB pages from the start of the

component to the end of the component ID registers.

DES_2, [3:0]

0x4

Arm Limited. This is the least significant nibble JEP106 continuation code.

Bit fields and details that are not provided in this description are architecturally defined. See the

Arm

®

 Architecture Reference Manual for A-profile architecture

.

The PMPIDR4 can be accessed through the external debug interface, offset 

0xFD0

.

5.6.12 PMPIDRn, Performance Monitors Peripheral Identification Register

5-7

No information is held in the Peripheral ID5, Peripheral ID6, and Peripheral ID7 Registers.

They are reserved for future use and are 

RES0

.

5.7 PMU snapshot registers

PMU snapshot registers are an 

IMPLEMENTATION DEFINED

 extension to an Arm

®

v8‑A compliant

PMU to support an external core monitor that connects to a system profiler.

5.7.1 PMU snapshot register summary

The snapshot registers are visible in an 

IMPLEMENTATION DEFINED

 region of the PMU external debug

interface. Each time the debugger sends a snapshot request, information is collected to see how

the code is executed in the different cores.

The following table describes the PMU snapshot registers implemented in the core.

Table 5-11: PMU snapshot register summary

Offset

Name

Type Width Description

0x600

PMPCSSR_LO

RO

32

0x604

PMPCSSR_HI

RO

32

5.7.2 PMPCSSR, PMU Snapshot Program Counter Sample Register

 on page 556

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

555

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Offset

Name

Type Width Description

0x608

PMCIDSSR

RO

32

5.7.3 PMCIDSSR, PMU Snapshot CONTEXTIDR_EL1 Sample Register

 on page 557

0x60C

PMCID2SSR

RO

32

5.7.4 PMCID2SSR, PMU Snapshot CONTEXTIDR_EL2 Sample Register

 on page 557

0x610

PMSSSR

RO

32

5.7.5 PMSSSR, PMU Snapshot Status Register

 on page 557

0x614

PMOVSSR

RO

32

5.7.6 PMOVSSR, PMU Snapshot Overflow Status Register

 on page 558

0x618

PMCCNTSR_LO RO

32

0x61C

PMCCNTSR_HI RO

32

5.7.7 PMCCNTSR, PMU Snapshot Cycle Counter Register

 on page 559

0x620

 + 4×n PMEVCNTSRn

RO

32

5.7.8 PMEVCNTSRn, PMU Snapshot Cycle Counter Registers 0-5

 on page 559

0x6F0

PMSSCR

WO 32

5.7.9 PMSSCR, PMU Snapshot Capture Register

 on page 559

5.7.2 PMPCSSR, PMU Snapshot Program Counter Sample Register

The PMPCSSR holds the same value as the PMPCSR register at the time of the snapshot.

However, unlike the other view of PMPCSR, it is not sensitive to reads. That is, reads of PMPCSSR

through the PMU snapshot view do not cause a new sample capture and do not change

PMCID1SR, PMCID2SR, or PMVIDSR.

Bit field descriptions

The PMPCSSR is a 64-bit read-only register.

Figure 5-41: PMPCSSR bit assignments

63

0

PC

EL

56 55

60

61

62

RES

0

NS

NS, [63]

Non-secure sample.

EL, [62:61]

Exception level sample.

RES0, [60:56]

Reserved, 

RES0

.

PC, [55:0]

Sampled PC.

Configurations

There are no configuration notes.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

556

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Usage constraints

Any access to PMPCSSR returns an error if any of the following occurs:
• The Core power domain is off.
• DoubleLockStatus() == TRUE.

5.7.3 PMCIDSSR, PMU Snapshot CONTEXTIDR_EL1 Sample Register

The PMCIDSSR holds the same value as the PMCID1SR register at the time of the snapshot.

Configurations

There are no configuration notes.

Usage constraints

Any access to PMCIDSSR returns an error if any of the following occurs:
• The Core power domain is off.
• DoubleLockStatus() == TRUE.

5.7.4 PMCID2SSR, PMU Snapshot CONTEXTIDR_EL2 Sample Register

The PMCID2SSR holds the same value as the PMCID2SR register at the time of the snapshot.

Configurations

There are no configuration notes.

Usage constraints

Any access to PMCID2SSR returns an error if any of the following occurs:
• The Core power domain is off.
• DoubleLockStatus() == TRUE.

5.7.5 PMSSSR, PMU Snapshot Status Register

The PMSSSR holds status information about the captured counters.

Bit field descriptions

The PMSSSR is a 32-bit read-only register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

557

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-42: PMSSSR bit assignments

31

0

1

NC

RES

0

RES0, [31:1]

Reserved, 

RES0

.

NC, [0]

No capture. This bit indicates whether the PMU event counters have been captured. The

possible values are:

0

PMU event counters are captured.

1

PMU event counters are not captured.

If there is a security violation, the core does not capture the event counters. The external

monitor is responsible for keeping track of whether it managed to capture the snapshot

registers from the core.

This bit does not reflect the status of the captured Program Counter Sample registers.

The core resets this bit to 1 by a Warm reset but MPSSSR.NC is overwritten at the first

capture.

Configurations

There are no configuration notes.

Usage constraints

Any access to PMSSSR returns an error if any of the following occurs:
• The Core power domain is off.
• DoubleLockStatus() == TRUE.

5.7.6 PMOVSSR, PMU Snapshot Overflow Status Register

The PMOVSSR is a captured copy of PMOVSR.

Once it is captured, the value in PMOVSSR is unaffected by writes to PMOVSSET_EL0 and

PMOVSCLR_EL0.

Configurations

There are no configuration notes.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

558

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Usage constraints

Any access to PMOVSSR returns an error if any of the following occurs:
• The Core power domain is off.
• DoubleLockStatus() == TRUE.

5.7.7 PMCCNTSR, PMU Snapshot Cycle Counter Register

The PMCCNTSR is a captured copy of PMCCNTR_EL0.

Once it is captured, the value in PMCCNTSR is unaffected by writes to PMCCNTR_EL0 and

PMCR_EL0.C.

Configurations

There are no configuration notes.

Usage constraints

Any access to PMCCNTSR returns an error if any of the following occurs:
• The Core power domain is off.
• DoubleLockStatus() == TRUE.

5.7.8 PMEVCNTSRn, PMU Snapshot Cycle Counter Registers 0-5

The PMEVCNTSRn, are captured copies of PMEVCNTRn_EL0, n is 0-5.

When they are captured, the value in PMSSEVCNTRn is unaffected by writes to

PMSSEVCNTRn_EL0 and PMCR_EL0.P.

Configurations

There are no configuration notes.

Usage constraints

Any access to PMSSEVCNTRn returns an error if any of the following occurs:
• The Core power domain is off.
• DoubleLockStatus() == TRUE.

5.7.9 PMSSCR, PMU Snapshot Capture Register

The PMSSCR provides a mechanism for software to initiate a sample.

Bit field descriptions

The PMSSCR is a 32-bit write-only register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

559

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-43: PMSSCR bit assignments

31

0

1

RES

0

SS

RES0, [31:1]

Reserved, 

RES0

.

SS, [0]

Capture now. The possible values are:

0

IGNORED

.

1

Initiate a capture immediately.

Configurations

There are no configuration notes.

Usage constraints

Any access to PMSSCR returns an error if any of the following occurs:
• The Core power domain is off.
• DoubleLockStatus() == TRUE.

5.8 ETM registers

This chapter describes the ETM registers.

5.8.1 ETM register summary

This section summarizes the ETM trace unit registers.

All ETM trace unit registers are 32-bit wide. The description of each register includes its offset

from a base address. The base address is defined by the system integrator when placing the ETM

trace unit in the Debug-APB memory map.

The following table lists all of the ETM trace unit registers.

Table 5-12: ETM trace unit register summary

Offset

Name

Type Reset

Description

0x004

TRCPRGCTLR

RW

0x00000000

5.8.59 TRCPRGCTLR, Programming Control Register

 on page 616

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

560

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Offset

Name

Type Reset

Description

0x00C

TRCSTATR

RO

0x00000003

5.8.67 TRCSTATR, Status Register

 on page 625

0x010

TRCCONFIGR

RW UNK

5.8.20 TRCCONFIGR, Trace Configuration Register

 on page 580

0x018

TRCAUXCTLR

RW

0x00000000

5.8.5 TRCAUXCTLR, Auxiliary Control Register

 on page 566

0x020

TRCEVENTCTL0R RW UNK

5.8.26 TRCEVENTCTL0R, Event Control 0 Register

 on page 585

0x024

TRCEVENTCTL1R RW UNK

5.8.27 TRCEVENTCTL1R, Event Control 1 Register

 on page 587

0x02C

TRCSTALLCTLR

RW UNK

5.8.66 TRCSTALLCTLR, Stall Control Register

 on page 624

0x030

TRCTSCTLR

RW UNK

5.8.70 TRCTSCTLR, Global Timestamp Control Register

 on page 627

0x034

TRCSYNCPR

RW  UNK

5.8.68 TRCSYNCPR, Synchronization Period Register

 on page 626

0x038

TRCCCCTLR

RW UNK

5.8.7 TRCCCCTLR, Cycle Count Control Register

 on page 569

0x03C

TRCBBCTLR

RW UNK

5.8.6 TRCBBCTLR, Branch Broadcast Control Register

 on page 568

0x040

TRCTRACEIDR

RW UNK

5.8.69 TRCTRACEIDR, Trace ID Register

 on page 626

0x080

TRCVICTLR

RW UNK

5.8.71 TRCVICTLR, ViewInst Main Control Register

 on page 628

0x084

TRCVIIECTLR

RW UNK

5.8.72 TRCVIIECTLR, ViewInst Include-Exclude Control Register

 on page 630

0x088

TRCVISSCTLR

RW UNK

5.8.73 TRCVISSCTLR, ViewInst Start-Stop Control Register

 on page 631

0x100

TRCSEQEVR0

RW UNK

5.8.61 TRCSEQEVRn, Sequencer State Transition Control Registers 0-2

 on page

618

0x104

TRCSEQEVR1

RW UNK

5.8.61 TRCSEQEVRn, Sequencer State Transition Control Registers 0-2

 on page

618

0x108

TRCSEQEVR2

RW UNK

5.8.61 TRCSEQEVRn, Sequencer State Transition Control Registers 0-2

 on page

618

0x118

TRCSEQRSTEVR

RW UNK

5.8.62 TRCSEQRSTEVR, Sequencer Reset Control Register

 on page 620

0x11C

TRCSEQSTR

RW UNK

5.8.63 TRCSEQSTR, Sequencer State Register

 on page 621

0x120

TRCEXTINSELR

RW UNK

5.8.28 TRCEXTINSELR, External Input Select Register

 on page 588

0x140

TRCCNTRLDVR0 RW UNK

5.8.18 TRCCNTRLDVRn, Counter Reload Value Registers 0-1

 on page 578

0x144

TRCCNTRLDVR1 RW UNK

5.8.18 TRCCNTRLDVRn, Counter Reload Value Registers 0-1

 on page 578

0x150

TRCCNTCTLR0

RW UNK

5.8.16 TRCCNTCTLR0, Counter Control Register 0

 on page 575

0x154

TRCCNTCTLR1

RW UNK

5.8.17 TRCCNTCTLR1, Counter Control Register 1

 on page 577

0x160

TRCCNTVR0

RW UNK

5.8.19 TRCCNTVRn, Counter Value Registers 0-1

 on page 579

0x164

TRCCNTVR1

RW UNK

5.8.19 TRCCNTVRn, Counter Value Registers 0-1

 on page 579

0x180

TRCIDR8

RO

0x00000000

5.8.35 TRCIDR8, ID Register 8

 on page 599

0x184

TRCIDR9

RO

0x00000000

5.8.36 TRCIDR9, ID Register 9

 on page 600

0x188

TRCIDR10

RO

0x00000000

5.8.37 TRCIDR10, ID Register 10

 on page 600

0x18C

TRCIDR11

RO

0x00000000

5.8.38 TRCIDR11, ID Register 11

 on page 601

0x190

TRCIDR12

RO

0x00000000

5.8.39 TRCIDR12, ID Register 12

 on page 601

0x194

TRCIDR13

RO

0x00000000

5.8.40 TRCIDR13, ID Register 13

 on page 602

0x1C0

TRCIMSPEC0

RW

0x00000000

5.8.41 TRCIMSPEC0, IMPLEMENTATION SPECIFIC Register 0

 on page 602

0x1E0

TRCIDR0

RO

0x28000EA1

5.8.29 TRCIDR0, ID Register 0

 on page 590

0x1E4

TRCIDR1

RO

0x41001422

5.8.30 TRCIDR1, ID Register 1

 on page 592

0x1E8

TRCIDR2

RO

0x20001048

5.8.31 TRCIDR2, ID Register 2

 on page 593

0x1EC

TRCIDR3

RO

0x0D7B0004

5.8.32 TRCIDR3, ID Register 3

 on page 594

0x1F0

TRCIDR4

RO

0x11170004

5.8.33 TRCIDR4, ID Register 4

 on page 596

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

561

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Offset

Name

Type Reset

Description

0x1F4

TRCIDR5

RO

0x2883842F

5.8.34 TRCIDR5, ID Register 5

 on page 598

0x200

TRCRSCTLRn

RW UNK

5.8.60 TRCRSCTLRn, Resource Selection Control Registers 2-15

 on page 617,

n is 2, 15

0x280

TRCSSCCR0

RW UNK

5.8.64 TRCSSCCR0, Single-Shot Comparator Control Register 0

 on page 622

0x2A0

TRCSSCSR0

RW UNK

5.8.65 TRCSSCSR0, Single-Shot Comparator Status Register 0

 on page 623

0x300

TRCOSLAR

WO

0x00000001

5.8.49 TRCOSLAR, OS Lock Access Register

 on page 608

0x304

TRCOSLSR

RO

0x0000000A

5.8.50 TRCOSLSR, OS Lock Status Register

 on page 609

0x310

TRCPDCR

RW

0x00000000

5.8.51 TRCPDCR, Power Down Control Register

 on page 610

0x314

TRCPDSR

RO

0x00000013

5.8.52 TRCPDSR, Power Down Status Register

 on page 611

0x400

TRCACVRn

RW UNK

5.8.3 TRCACVRn, Address Comparator Value Registers 0-7

 on page 564

0x480

TRCACATRn

RW UNK

5.8.2 TRCACATRn, Address Comparator Access Type Registers 0-7

 on page

563

0x600

TRCCIDCVR0

RW UNK

5.8.9 TRCCIDCVR0, Context ID Comparator Value Register 0

 on page 570

0x640

TRCVMIDCVR0

RW UNK

5.8.74 TRCVMIDCVR0, VMID Comparator Value Register 0

 on page 632

0x680

TRCCIDCCTLR0

RW UNK

5.8.8 TRCCIDCCTLR0, Context ID Comparator Control Register 0

 on page 570

0x688

TRCVMIDCCTLR0 RW UNK

5.8.75 TRCVMIDCCTLR0, Virtual context identifier Comparator Control Register

0

 on page 632

0xEE4

TRCITATBIDR

RW UNK

5.8.42 TRCITATBIDR, Integration ATB Identification Register

 on page 603

0xEEC

TRCITIDATAR

WO UNK

5.8.46 TRCITIDATAR, Integration Instruction ATB Data Register

 on page 606

0xEF4

TRCITIATBINR

RO

UNK

5.8.44 TRCITIATBINR, Integration Instruction ATB In Register

 on page 604

0xEFC

TRCITIATBOUTR WO UNK

5.8.45 TRCITIATBOUTR, Integration Instruction ATB Out Register

 on page

605

0xF00

TRCITCTRL

RW

0x00000000

5.8.43 TRCITCTRL, Integration Mode Control Register

 on page 604

0xFA0

TRCCLAIMSET

RW UNK

5.8.15 TRCCLAIMSET, Claim Tag Set Register

 on page 575

0xFA4

TRCCLAIMCLR

RW

0x00000000

5.8.14 TRCCLAIMCLR, Claim Tag Clear Register

 on page 574

0xFA8

TRCDEVAFF0

RO

UNK

5.8.21 TRCDEVAFF0, Device Affinity Register 0

 on page 583

0xFAC

TRCDEVAFF1

RO

UNK

5.8.22 TRCDEVAFF1, Device Affinity Register 1

 on page 583

0xFB0

TRCLAR

WO UNK

5.8.47 TRCLAR, Software Lock Access Register

 on page 607

0xFB4

TRCLSR

RO

0x00000000

5.8.48 TRCLSR, Software Lock Status Register

 on page 608

0xFB8

TRCAUTHSTATUS RO

UNK

5.8.4 TRCAUTHSTATUS, Authentication Status Register

 on page 565

0xFBC

TRCDEVARCH

RO

0x47724A13

5.8.23 TRCDEVARCH, Device Architecture Register

 on page 583

0xFC8

TRCDEVID

RO

0x00000000

5.8.24 TRCDEVID, Device ID Register

 on page 584

0xFCC

TRCDEVTYPE

RO

0x00000013

5.8.25 TRCDEVTYPE, Device Type Register

 on page 585

0xFE0

TRCPIDR0

RO

0x0000000A

5.8.53 TRCPIDR0, ETM Peripheral Identification Register 0

 on page 613

0xFE4

TRCPIDR1

RO

0x000000BD

5.8.54 TRCPIDR1, ETM Peripheral Identification Register 1

 on page 613

0xFE8

TRCPIDR2

RO

0x0000002B

5.8.55 TRCPIDR2, ETM Peripheral Identification Register 2

 on page 614

0xFEC

TRCPIDR3

RO

0x00000000

5.8.56 TRCPIDR3, ETM Peripheral Identification Register 3

 on page 615

0xFD0

TRCPIDR4

RO

0x00000004

5.8.57 TRCPIDR4, ETM Peripheral Identification Register 4

 on page 616

0xFD4

 -

0xFDC

TRCPIDRn

RO

0x00000000

5.8.58 TRCPIDRn, ETM Peripheral Identification Registers 5-7

 on page 616

0xFF0

TRCCIDR0

RO

0x0000000D

5.8.10 TRCCIDR0, ETM Component Identification Register 0

 on page 571

0xFF4

TRCCIDR1

RO

0x00000090

5.8.11 TRCCIDR1, ETM Component Identification Register 1

 on page 572

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

562

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Offset

Name

Type Reset

Description

0xFF8

TRCCIDR2

RO

0x00000005

5.8.12 TRCCIDR2, ETM Component Identification Register 2

 on page 572

0xFFC

TRCCIDR3

RO

0x000000B1

5.8.13 TRCCIDR3, ETM Component Identification Register 3

 on page 573

5.8.2 TRCACATRn, Address Comparator Access Type Registers 0-7

The TRCACATRn registers control the access for the corresponding address comparators.

Bit field descriptions

The TRCACATRn registers are 64-bit registers.

Figure 5-44: TRCACATRn bit assignments

63

16 15

12 11

8 7

3 2 1 0

TYPE

EXLEVEL_S

CONTEXTTYPE

EXLEVEL_NS

RES

0

RES0, [63:16]

RES0

Reserved

EXLEVEL_NS, [15:12]

Each bit controls whether a comparison can occur in Non-secure state for the corresponding

Exception level. The possible values are:

0

The trace unit can perform a comparison, in Non-secure state, for

Exception level 

n

.

1

The trace unit does not perform a comparison, in Non-secure state,

for Exception level 

n

.

The Exception levels are:

Bit[12]

Exception level 0

Bit[13]

Exception level 1

Bit[14]

Exception level 2

Bit[15]

Always 

RES0

EXLEVEL_S, [11:8]

Each bit controls whether a comparison can occur in Secure state for the corresponding

Exception level. The possible values are:

0

The trace unit can perform a comparison, in Secure state, for

Exception level 

n

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

563

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

1

The trace unit does not perform a comparison, in Secure state, for

Exception level 

n

.

The Exception levels are:

Bit[8]

Exception level 0

Bit[9]

Exception level 1

Bit[10]

Always 

RES0

Bit[11]

Exception level 3

RES0, [7:4]

RES0

Reserved

CONTEXT TYPE, [3:2]

Controls whether the trace unit performs a Context ID comparison, a VMID comparison, or

both comparisons:

0b00

The trace unit does not perform a Context ID comparison.

0b01

The trace unit performs a Context ID comparison using the Context

ID comparator that the CONTEXT field specifies, and signals a

match if both the Context ID comparator matches and the address

comparator match.

0b10

The trace unit performs a VMID comparison using the VMID

comparator that the CONTEXT field specifies, and signals a match if

both the VMID comparator and the address comparator match.

0b11

The trace unit performs a Context ID comparison and a VMID

comparison using the comparators that the CONTEXT field specifies,

and signals a match if the Context ID comparator matches, the VMID

comparator matches, and the address comparator matches.

TYPE, [1:0]

Type of comparison:

0b00

Instruction address, 

RES0

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCACATR

n

 registers can be accessed through the external debug interface, offset

0x480-

0x4B8

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

564

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.8.3 TRCACVRn, Address Comparator Value Registers 0-7

The TRCACVRn registers indicate the address for the address comparators.

Bit field descriptions

The TRCACVRn registers are 64-bit registers.

Figure 5-45: TRCACVRn bit assignments

ADDRESS

63

0

ADDRESS, [63:0]

The address value to compare against

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCACVRn can be accessed through the external debug interface, offset 

0x400

-

0x43C

.

5.8.4 TRCAUTHSTATUS, Authentication Status Register

The TRCAUTHSTATUS indicates the current level of tracing permitted by the system.

Bit field descriptions

The TRCAUTHSTATUS is a 32-bit register.

Figure 5-46: TRCAUTHSTATUS bit assignments

31

1 0

SNID

2

SID

4 3

5

7 6

8

NSNID

NSID

RES

0

RES0, [31:8]

RES0

Reserved.

SNID, [7:6]

Secure Non-invasive Debug:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

565

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

0b10

Secure Non-invasive Debug implemented but disabled.

0b11

Secure Non-invasive Debug implemented and enabled.

SID, [5:4]

Secure Invasive Debug:

0b00

Secure Invasive Debug is not implemented.

NSNID, [3:2]

Non-secure Non-invasive Debug:

0b10

Non-secure Non-invasive Debug implemented but disabled,

NIDEN=0.

0b11

Non-secure Non-invasive Debug implemented and enabled,

NIDEN=1.

NSID, [1:0]

Non-secure Invasive Debug:

0b00

Non-secure Invasive Debug is not implemented.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCAUTHSTATUS can be accessed through the external debug interface, offset 

0xFB8

.

5.8.5 TRCAUXCTLR, Auxiliary Control Register

The TRCAUXCTLR provides 

IMPLEMENTATION DEFINED

 configuration and control options.

Bit field descriptions

The TRCAUXCTLR is a 32-bit register.

Figure 5-47: TRCAUXCTLR bit assignments

31

0

8 7

COREIFEN

AUTHNOFLUSH

TSNODELAY

6 5 4 3 2 1

SYNCDELAY

OVFLW

IDLEACK

AFREADY

RES

0

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

566

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

RES0, [31:8]

RES0

Reserved.

COREIFEN, [7]

Keep core interface enabled regardless of trace enable register state. The possible values are:

0

Core interface enabled is set by trace enable register state.

1

Enable core interface, regardless of trace enable register state.

RES0, [6]

RES0

Reserved.

AUTHNOFLUSH, [5]

Do not flush trace on de-assertion of authentication inputs. The possible values are:

0

ETM trace unit FIFO is flushed and ETM trace unit enters idle state

when DBGEN or NIDEN is LOW.

1

ETM trace unit FIFO is not flushed and ETM trace unit does not

enter idle state when DBGEN or NIDEN is LOW.

When this bit is set to 1, the trace unit behavior deviates from architecturally-specified

behavior.

TSNODELAY, [4]

Do not delay timestamp insertion based on FIFO depth. The possible values are:

0

Timestamp packets are inserted into FIFO only when trace activity is

LOW.

1

Timestamp packets are inserted into FIFO irrespective of trace

activity.

SYNCDELAY, [3]

Delay periodic synchronization if FIFO is more than half-full. The possible values are:

0

SYNC packets are inserted into FIFO only when trace activity is low.

1

SYNC packets are inserted into FIFO irrespective of trace activity.

OVFLW, [2]

Force overflow if synchronization is not completed when second synchronization becomes

due. The possible values are:

0

No FIFO overflow when SYNC packets are delayed.

1

Forces FIFO overflow when SYNC packets are delayed.

When this bit is set to 1, the trace unit behavior deviates from architecturally-specified

behavior.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

567

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

IDLEACK, [1]

Force idle-drain acknowledge high, CPU does not wait for trace to drain before entering WFX

state. The possible values are:

0

ETM trace unit idle acknowledge is asserted only when the ETM

trace unit is in idle state.

1

ETM trace unit idle acknowledge is asserted irrespective of the ETM

trace unit idle state.

When this bit is set to 1, trace unit behavior deviates from architecturally-specified behavior.

AFREADY, [0]

Always respond to AFREADY immediately. Does not have any interaction with FIFO draining,

even in WFI state. The possible values are:

0

ETM trace unit AFREADYM output is asserted only when the ETM

trace unit is in idle state or when all the trace bytes in FIFO before a

flush request are output.

1

ETM trace unit AFREADYM output is always asserted HIGH. When

this bit is set to 1, trace unit behavior deviates from architecturally-

specified behavior.

Bit fields and details not provided in this description are architecturally defined. See the 

Arm

®

Architecture Reference Manual for A-profile architecture

.

The TRCAUXCTLR can be accessed through the external debug interface, offset 

0x018

.

5.8.6 TRCBBCTLR, Branch Broadcast Control Register

The TRCBBCTLR controls how branch broadcasting behaves, and allows branch broadcasting to be

enabled for certain memory regions.

Bit field descriptions

The TRCBBCTLR is a 32-bit register.

Figure 5-48: TRCBBCTLR bit assignments

31

0

8 7

RANGE

9

MODE

RES

0

RES0, [31:9]

RES0

Reserved

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

568

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

MODE, [8]

Mode bit:

0

Exclude mode. Branch broadcasting is not enabled in the address

range that RANGE defines.

If RANGE==0 then branch broadcasting is enabled for the entire

memory map.

1

Include mode. Branch broadcasting is enabled in the address range

that RANGE defines.

If RANGE==0 then the behavior of the trace unit is 

CONSTRAINED

UNPREDICTABLE

. That is, the trace unit might or might not consider

any instructions to be in a branch broadcast region.

RANGE, [7:0]

Address range field.

Selects which address range comparator pairs are in use with branch broadcasting. Each bit

represents an address range comparator pair, so bit[

n

] controls the selection of address range

comparator pair 

n

. If bit[

n

] is:

0

The address range that address range comparator pair 

n

 defines, is

not selected.

1

The address range that address range comparator pair 

n

 defines, is

selected.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCBBCTLR can be accessed through the external debug interface, offset 

0x03C

.

5.8.7 TRCCCCTLR, Cycle Count Control Register

The TRCCCCTLR sets the threshold value for cycle counting.

Bit field descriptions

The TRCCCCTLR is a 32-bit register.

Figure 5-49: TRCCCCTLR bit assignments

31

0

THRESHOLD

12 11

RES

0

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

569

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

RES0, [31:12]

RES0

Reserved.

THRESHOLD, [11:0]

Instruction trace cycle count threshold.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCCCCTLR can be accessed through the external debug interface, offset 

0x038

.

5.8.8 TRCCIDCCTLR0, Context ID Comparator Control Register 0

The TRCCIDCCTLR0 controls the mask value for the context ID comparators.

Bit field descriptions

The TRCCIDCCTLR0 is a 32-bit register.

Figure 5-50: TRCCIDCCTLR0 bit assignments

31

0

4

COMP0

3

RES

0

RES0, [31:4]

RES0

Reserved.

COMP0, [3:0]

Controls the mask value that the trace unit applies to TRCCIDCVR0. Each bit in this field

corresponds to a byte in TRCCIDCVR0. When a bit is:

0

The trace unit includes the relevant byte in TRCCIDCVR0 when it

performs the Context ID comparison.

1

The trace unit ignores the relevant byte in TRCCIDCVR0 when it

performs the Context ID comparison.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCCIDCCTLR0 can be accessed through the external debug interface, offset 

0x680

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

570

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.8.9 TRCCIDCVR0, Context ID Comparator Value Register 0

The TRCCIDCVR0 contains a Context ID value.

Bit field descriptions

The TRCCIDCVR0 is a 64-bit register.

Figure 5-51: TRCCIDCVR0 bit assignments

63

0

Value

31

32

RES

0

RES0, [63:32]

RES0

Reserved.

VALUE, [31:0]

 

The data value to compare against.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCCIDCVR0 can be accessed through the external debug interface, offset 

0x600

.

5.8.10 TRCCIDR0, ETM Component Identification Register 0

The TRCCIDR0 provides information to identify a trace component.

Bit field descriptions

The TRCCIDR0 is a 32-bit register.

Figure 5-52: TRCCIDR0 bit assignments

31

0

PRMBL_0

7

8

RES

0

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

571

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

RES0, [31:8]

RES0

Reserved.

PRMBL_0, [7:0]

0x0D

Preamble byte 0.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCCIDR0 can be accessed through the external debug interface, offset 

0xFF0

.

5.8.11 TRCCIDR1, ETM Component Identification Register 1

The TRCCIDR1 provides information to identify a trace component.

Bit field descriptions

The TRCCIDR1 is a 32-bit register.

Figure 5-53: TRCCIDR1 bit assignments

31

0

PRMBL_1

7

8

3

4

CLASS

RES

0

RES0, [31:8]

RES0

Reserved.

CLASS, [7:4]

0x9

Debug component.

PRMBL_1, [3:0]

0x0

Preamble byte 1.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCCIDR1 can be accessed through the external debug interface, offset 

0xFF4

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

572

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.8.12 TRCCIDR2, ETM Component Identification Register 2

The TRCCIDR2 provides information to identify a CTI component.

Bit field descriptions

The TRCCIDR2 is a 32-bit register.

Figure 5-54: TRCCIDR2 bit assignments

31

0

PRMBL_2

7

8

RES

0

RES0, [31:8]

RES0

Reserved.

PRMBL_2, [7:0]

0x05

Preamble byte 2.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCCIDR2 can be accessed through the external debug interface, offset 

0xFF8

.

5.8.13 TRCCIDR3, ETM Component Identification Register 3

The TRCCIDR3 provides information to identify a trace component.

Bit field descriptions

The TRCCIDR3 is a 32-bit register.

Figure 5-55: TRCCIDR3 bit assignments

31

0

PRMBL_3

7

8

RES

0

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

573

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

RES0, [31:8]

RES0

Reserved.

PRMBL_3, [7:0]

0xB1

Preamble byte 3.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCCIDR3 can be accessed through the external debug interface, offset 

0xFFC

.

5.8.14 TRCCLAIMCLR, Claim Tag Clear Register

The TRCCLAIMCLR clears bits in the claim tag and determines the current value of the claim tag.

Bit field descriptions

The TRCCLAIMCLR is a 32-bit register.

Figure 5-56: TRCCLAIMCLR bit assignments

31

4 3

0

CLR

RES

0

RES0, [31:4]

RES0

Reserved.

CLR, [3:0]

On reads, for each bit:

0

Claim tag bit is not set.

1

Claim tag bit is set.

On writes, for each bit:

0

Has no effect.

1

Clears the relevant bit of the claim tag.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

574

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

The TRCCLAIMCLR can be accessed through the external debug interface, offset 

0xFA4

.

5.8.15 TRCCLAIMSET, Claim Tag Set Register

The TRCCLAIMSET sets bits in the claim tag and determines the number of claim tag bits

implemented.

Bit field descriptions

The TRCCLAIMSET is a 32-bit register.

Figure 5-57: TRCCLAIMSET bit assignments

31

4 3

0

SET

RES

0

RES0, [31:4]

RES0

Reserved.

SET, [3:0]

On reads, for each bit:

0

Claim tag bit is not implemented.

1

Claim tag bit is implemented.

On writes, for each bit:

0

Has no effect.

1

Sets the relevant bit of the claim tag.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCCLAIMSET can be accessed through the external debug interface, offset 

0xFA0

.

5.8.16 TRCCNTCTLR0, Counter Control Register 0

The TRCCNTCTLR0 controls the counter.

Bit field descriptions

The TRCCNTCTLR0 is a 32-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

575

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-58: TRCCNTCTLR0 bit assignments

31

16 15 14

12 11

8 7 6

4 3

0

RLDSEL

CNTSEL

RLDSELF

CNTTYPE

17

RLDTYPE

RES

0

RES0, [31:17]

RES0

Reserved.

RLDSELF, [16]

Defines whether the counter reloads when it reaches zero:

0

The counter does not reload when it reaches zero. The counter only

reloads based on RLDTYPE and RLDSEL.

1

The counter reloads when it reaches zero and the resource selected

by CNTTYPE and CNTSEL is also active. The counter also reloads

based on RLDTYPE and RLDSEL.

RLDTYPE, [15]

Selects the resource type for the reload:

0

Single selected resource.

1

Boolean combined resource pair.

RES0, [14:12]

RES0

Reserved.

RLDSEL, [11:8]

Selects the resource number, based on the value of RLDTYPE:

When RLDTYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0].

When RLDTYPE is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0].

CNTTYPE, [7]

Selects the resource type for the counter:

0

Single selected resource.

1

Boolean combined resource pair.

RES0, [6:4]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

576

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

CNTSEL, [3:0]

Selects the resource number, based on the value of CNTTYPE:

When CNTTYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0].

When CNTTYPE is 1, selects a Boolean combined resource pair from 0-7 defined by

bits[2:0].

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCCNTCTLR0 can be accessed through the external debug interface, offset 

0x150

.

5.8.17 TRCCNTCTLR1, Counter Control Register 1

The TRCCNTCTLR1 controls the counter.

Bit field descriptions

The TRCCNTCTLR1 is a 32-bit register.

Figure 5-59: TRCCNTCTLR1 bit assignments

31

16 15 14

12 11

8 7 6

4 3

0

RLDSEL

CNTSEL

RLDSELF

CNTTYPE

17

18

CNTCHAIN

RLDTYPE

RES

0

RES0, [31:18]

RES0

Reserved.

CNTCHAIN, [17]

Defines whether the counter decrements when the counter reloads. This enables two

counters to be used in combination to provide a larger counter:

0

The counter operates independently from the counter. The counter

only decrements based on CNTTYPE and CNTSEL.

1

The counter decrements when the counter reloads. The counter also

decrements when the resource selected by CNTTYPE and CNTSEL is

active.

RLDSELF, [16]

Defines whether the counter reloads when it reaches zero:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

577

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

0

The counter does not reload when it reaches zero. The counter only

reloads based on RLDTYPE and RLDSEL.

1

The counter reloads when it is zero and the resource selected by

CNTTYPE and CNTSEL is also active. The counter also reloads based

on RLDTYPE and RLDSEL.

RLDTYPE, [15]

Selects the resource type for the reload:

0

Single selected resource.

1

Boolean combined resource pair.

RES0, [14:12]

RES0

Reserved.

RLDSEL, [11:8]

Selects the resource number, based on the value of RLDTYPE:

When RLDTYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0].

When RLDTYPE is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0].

CNTTYPE, [7]

Selects the resource type for the counter:

0

Single selected resource.

1

Boolean combined resource pair.

RES0, [6:4]

RES0

Reserved.

CNTSEL, [3:0]

Selects the resource number, based on the value of CNTTYPE:

When CNTTYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0].

When CNTTYPE is 1, selects a Boolean combined resource pair from 0-7 defined by

bits[2:0].

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCCNTCTLR1 can be accessed through the external debug interface, offset 

0x154

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

578

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.8.18 TRCCNTRLDVRn, Counter Reload Value Registers 0-1

The TRCCNTRLDVRn registers define the reload value for the counter.

Bit field descriptions

The TRCCNTRLDVRn registers are 32-bit registers.

Figure 5-60: TRCCNTRLDVRn bit assignments

31

16 15

0

VALUE

RES

0

RES0, [31:16]

RES0

Reserved

VALUE, [15:0]

Defines the reload value for the counter. This value is loaded into the counter each time the

reload event occurs.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCCNTRLDVRn registers can be accessed through the external debug interface, offsets:

TRCCNTRLDVR0

0x140

TRCCNTRLDVR1

0x144

5.8.19 TRCCNTVRn, Counter Value Registers 0-1

The TRCCNTVRn registers contain the current counter value.

Bit field descriptions

The TRCCNTVRn registers are 32-bit registers.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

579

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-61: TRCCNTVRn bit assignments

31

16 15

0

VALUE

RES

0

RES0, [31:16]

RES0

Reserved

VALUE, [15:0]

Contains the current counter value.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCCNTVRn registers can be accessed through the external debug interface, offsets:

TRCCNTVR0

0x160

TRCCNTVR1

0x164

5.8.20 TRCCONFIGR, Trace Configuration Register

The TRCCONFIGR controls the tracing options.

Bit field descriptions

The TRCCONFIGR is a 32-bit register.

Figure 5-62: TRCCONFIGR bit assignments

31

0

12 11 10

8

6

7

5 4 3 2

VMID

CID
CCI

BB

13

1

RES

0

RES

1

14

15

16

17

18

QE

COND

DV
DA

VMIDOPT

RS

TS

INSTP0

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

580

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

RES0, [31:18]

RES0

Reserved.

DV, [17]

Enables data value tracing. The possible values are:

0

Disables data value tracing.

1

Enables data value tracing.

DA, [16]

Enables data address tracing. The possible values are:

0

Disables data address tracing.

1

Enables data address tracing.

VMIDOPT, [15]

Configures the Virtual context identifier value that is used by the trace unit, both for trace

generation and in the Virtual context identifier comparators. The possible values are:

0b0

VTTBR_EL2.VMID is used. If the trace unit supports a Virtual context

identifier larger than the VTTBR_EL2.VMID, the upper unused bits

are always zero. If the trace unit supports a Virtual context identifier

larger than 8 bits and if the VTCR_EL2.VS bit forces use of an 8-bit

Virtual context identifier, bits [15:8] of the trace unit Virtual context

identifier are always zero.

0b1

CONTEXTIDR_EL2 is used. TRCIDR2.VMIDOPT indicates whether

this field is implemented.

QE, [14:13]

Enables Q element. The possible values are:

0b00

Q elements are disabled.

0b01

Q elements with instruction counts are disabled. Q elements without

instruction counts are disabled.

0b10

Reserved.

0b11

Q elements with and without instruction counts are enabled.

RS, [12]

Enables the return stack. The possible values are:

0

Disables the return stack.

1

Enables the return stack.

TS, [11]

Enables global timestamp tracing. The possible values are:

0

Disables global timestamp tracing.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

581

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

1

Enables global timestamp tracing.

COND, [10:8]

Enables conditional instruction tracing. The possible values are:

0b000

Conditional instruction tracing is disabled.

0b001

Conditional load instructions are traced.

0b010

Conditional store instructions are traced.

0b011

Conditional load and store instructions are traced.

0b111

All conditional instructions are traced.

VMID, [7]

Enables VMID tracing. The possible values are:

0

Disables VMID tracing.

1

Enables VMID tracing.

CID, [6]

Enables context ID tracing. The possible values are:

0

Disables context ID tracing.

1

Enables context ID tracing.

RES0, [5]

RES0

Reserved.

CCI, [4]

Enables cycle counting instruction trace. The possible values are:

0

Disables cycle counting instruction trace.

1

Enables cycle counting instruction trace.

BB, [3]

Enables branch broadcast mode. The possible values are:

0

Disables branch broadcast mode.

1

Enables branch broadcast mode.

INSTP0, [2:1]

Controls whether load and store instructions are traced as P0 instructions. The possible

values are:

0b00

Load and store instructions are not traced as P0 instructions.

0b01

Load instructions are traced as P0 instructions.

0b10

Store instructions are traced as P0 instructions.

0b11

Load and store instructions are traced as P0 instructions.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

582

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

RES1, [0]

RES1

Reserved.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCCONFIGR can be accessed through the external debug interface, offset 

0x010

.

5.8.21 TRCDEVAFF0, Device Affinity Register 0

The TRCDEVAFF0 provides an additional core identification mechanism for scheduling purposes

in a cluster. TRCDEVAFF0 is a read-only copy of MPIDR_EL1[31:0] accessible from the external

debug interface.

Bit field descriptions

The TRCDEVAFF0 is a 32-bit register and is a copy of MPIDR_EL1[31:0]. See 

3.2.90 MPIDR_EL1,

Multiprocessor Affinity Register, EL1

 on page 355 for full bit field descriptions.

5.8.22 TRCDEVAFF1, Device Affinity Register 1

The TRCDEVAFF1 provides an additional core identification mechanism for scheduling purposes

in a cluster. TRCDEVAFF1 is a read-only copy of MPIDR_EL1[63:32] accessible from the external

debug interface.

Bit field descriptions

The TRCDEVAFF1 is a 32-bit register and is a copy of MPIDR_EL1[63:32]. See 

3.2.90 MPIDR_EL1,

Multiprocessor Affinity Register, EL1

 on page 355 for full bit field descriptions.

5.8.23 TRCDEVARCH, Device Architecture Register

The TRCDEVARCH identifies the ETM trace unit as an ETMv4 component.

Bit field descriptions

The TRCDEVARCH is a 32-bit register.

Figure 5-63: TRCDEVARCH bit assignments

ARCHITECT

31

21 20 19

16 15

0

REVISION

ARCHID

PRESENT

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

583

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

ARCHITECT, [31:21]

Defines the architect of the component:

0x4

Arm JEP continuation.

0x3B

Arm JEP 106 code.

PRESENT, [20]

Indicates the presence of this register:

0b1

Register is present.

REVISION, [19:16]

Architecture revision:

0x02

Architecture revision 2.

ARCHID, [15:0]

Architecture ID:

0x4A13

ETMv4 component.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCDEVARCH can be accessed through the external debug interface, offset 

0xFBC

.

5.8.24 TRCDEVID, Device ID Register

The TRCDEVID indicates the capabilities of the ETM trace unit.

Bit field descriptions

The TRCDEVID is a 32-bit register.

Figure 5-64: TRCDEVID bit assignments

DEVID

31

0

DEVID, [31:0]

RAZ. There are no component-defined capabilities.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCDEVID can be accessed through the external debug interface, offset 

0xFC8

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

584

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.8.25 TRCDEVTYPE, Device Type Register

The TRCDEVTYPE indicates the type of the component.

Bit field descriptions

The TRCDEVTYPE is a 32-bit register.

Figure 5-65: TRCDEVTYPE bit assignments

SUB

MAJOR

31

0

4 3

7

8

RES

0

RES0, [31:8]

RES0

Reserved.

SUB, [7:4]

The sub-type of the component:

0b0001

Core trace.

MAJOR, [3:0]

The main type of the component:

0b0011

Trace source.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCDEVTYPE can be accessed through the external debug interface, offset 

0xFCC

.

5.8.26 TRCEVENTCTL0R, Event Control 0 Register

The TRCEVENTCTL0R controls the tracing of events in the trace stream. The events also drive the

external outputs from the ETM trace unit. The events are selected from the Resource Selectors.

Bit field descriptions

The TRCEVENTCTL0R is a 32-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

585

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-66: TRCEVENTCTL0R bit assignments

31

16 15 14

12 11

8 7

4 3

0

TYPE3

SEL1

30

28 27

24 23 22

20 19

SEL3

SEL2

TYPE2

TYPE0

TYPE1

SEL0

6

RES

0

TYPE3, [31]

Selects the resource type for trace event 3:

0

Single selected resource.

1

Boolean combined resource pair.

RES0, [30:28]

RES0

Reserved.

SEL3, [27:24]

Selects the resource number, based on the value of TYPE3:

When TYPE3 is 0, selects a single selected resource from 0-15 defined by bits[3:0].

When TYPE3 is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0].

TYPE2, [23]

Selects the resource type for trace event 2:

0

Single selected resource.

1

Boolean combined resource pair.

RES0, [22:20]

RES0

Reserved.

SEL2, [19:16]

Selects the resource number, based on the value of TYPE2:

When TYPE2 is 0, selects a single selected resource from 0-15 defined by bits[3:0].

When TYPE2 is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0].

TYPE1, [15]

Selects the resource type for trace event 1:

0

Single selected resource.

1

Boolean combined resource pair.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

586

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

RES0, [14:12]

RES0

Reserved.

SEL1, [11:8]

Selects the resource number, based on the value of TYPE1:

When TYPE1 is 0, selects a single selected resource from 0-15 defined by bits[3:0].

When TYPE1 is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0].

TYPE0, [7]

Selects the resource type for trace event 0:

0

Single selected resource.

1

Boolean combined resource pair.

RES0, [6:4]

RES0

Reserved.

SEL0, [3:0]

Selects the resource number, based on the value of TYPE0:

When TYPE0 is 0, selects a single selected resource from 0-15 defined by bits[3:0].

When TYPE0 is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0].

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCEVENTCTL0R can be accessed through the external debug interface, offset 

0x020

.

5.8.27 TRCEVENTCTL1R, Event Control 1 Register

The TRCEVENTCTL1R controls the behavior of the events that TRCEVENTCTL0R selects.

Bit field descriptions

The TRCEVENTCTL1R is a 32-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

587

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-67: TRCEVENTCTL1R bit assignments

31

0

4 3

5

8 7

EN

12 11 10

ATB

13

LPOVERRIDE

RES

0

RES0, [31:13]

RES0

Reserved.

LPOVERRIDE, [12]

Low-power state behavior override:

0

Low-power state behavior unaffected.

1

Low-power state behavior overridden. The resources and Event trace

generation are unaffected by entry to a low-power state.

ATB, [11]

ATB trigger enable:

0

ATB trigger disabled.

1

ATB trigger enabled.

RES0, [10:4]

RES0

Reserved.

EN, [3:0]

One bit per event, to enable generation of an event element in the instruction trace stream

when the selected event occurs:

0

Event does not cause an event element.

1

Event causes an event element.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCEVENTCTL1R can be accessed through the external debug interface, offset 

0x024

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

588

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.8.28 TRCEXTINSELR, External Input Select Register

The TRCEXTINSELR controls the selectors that choose an external input as a resource in the ETM

trace unit. You can use the Resource Selectors to access these external input resources.

Bit field descriptions

Figure 5-68: TRCEXTINSELR bit assignments

31

0

8 7

16 15

24 23

SEL2

SEL1

SEL0

SEL3

29

30

21

22

13

14

5

res0

6

RES0, [31:30]

RES0

Reserved.

SEL3, [29:24]

Selects an event from the external input bus for External Input Resource 3.

RES0, [23:22]

RES0

Reserved.

SEL2, [21:16]

Selects an event from the external input bus for External Input Resource 2.

RES0, [15:14]

RES0

Reserved.

SEL1, [13:8]

Selects an event from the external input bus for External Input Resource 1.

RES0, [7:6]

RES0

Reserved.

SEL0, [5:0]

Selects an event from the external input bus for External Input Resource 0.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

589

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

The TRCEXTINSELR can be accessed through the external debug interface, offset 

0x120

.

5.8.29 TRCIDR0, ID Register 0

The TRCIDR0 returns the tracing capabilities of the ETM trace unit.

Bit field descriptions

The TRCIDR0 is a 32-bit register.

Figure 5-69: TRCIDR0 bit assignments

31

0

COMMOPT

5 4 3 2 1

10 9 8 7

6

13 12 11

14

15

16

17

24 23

30 29 28

TSSIZE

RETSTACK

NUMEVENT

QFILT

QSUPP

CONDTYPE

INSTP0
TRCDATA
TRCBB
TRCCOND
TRCCCI

res0

res1

RES0, [31:30]

RES0

Reserved.

COMMOPT, [29]

Indicates the meaning of the commit field in some packets:

1

Commit mode 1.

TSSIZE, [28:24]

Global timestamp size field:

0b01000

Implementation supports a maximum global timestamp of 64 bits.

RES0, [23:17]

RES0

Reserved.

QSUPP, [16:15]

Indicates Q element support:

0b00

Q elements not supported.

QFILT, [14]

Indicates Q element filtering support:

0b0

Q element filtering not supported.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

590

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

CONDTYPE, [13:12]

Indicates how conditional results are traced:

0b00

Conditional trace not supported.

NUMEVENT, [11:10]

Number of events supported in the trace, minus 1:

0b11

Four events supported.

RETSTACK, [9]

Return stack support:

1

Return stack implemented.

RES0, [8]

RES0

Reserved.

TRCCCI, [7]

Support for cycle counting in the instruction trace:

1

Cycle counting in the instruction trace is implemented.

TRCCOND, [6]

Support for conditional instruction tracing:

0

Conditional instruction tracing is not supported.

TRCBB, [5]

Support for branch broadcast tracing:

1

Branch broadcast tracing is implemented.

TRCDATA, [4:3]

Conditional tracing field:

0b00

Tracing of data addresses and data values is not implemented.

INSTP0, [2:1]

P0 tracing support field:

0b00

Tracing of load and store instructions as P0 elements is not

supported.

RES1, [0]

RES1

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

591

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCIDR0 can be accessed through the external debug interface, offset 

0x1E0

.

5.8.30 TRCIDR1, ID Register 1

The TRCIDR1 returns the base architecture of the trace unit.

Bit field descriptions

The TRCIDR1 is a 32-bit register.

Figure 5-70: TRCIDR1 bit assignments

31

0

TRCARCHMAJ

24 23

16 15

12 11

8 7

4 3

DESIGNER

REVISION

TRCARCHMIN

RES

0

RES

1

DESIGNER, [31:24]

Indicates which company designed the trace unit:

0x41

Arm.

RES0, [23:16]

RES0

Reserved.

RES1, [15:12]

RES1

Reserved.

TRCARCHMAJ, [11:8]

Major trace unit architecture version number:

0x4

ETMv4.

TRCARCHMIN, [7:4]

Minor trace unit architecture version number:

0x2

ETMv4.2

REVISION, [3:0]

Trace unit implementation revision number:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

592

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

2

ETM revision for r2p0

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCIDR1 can be accessed through the external debug interface, offset 

0x1E4

.

5.8.31 TRCIDR2, ID Register 2

The TRCIDR2 returns the maximum size of six parameters in the trace unit.

The parameters are:
• Cycle counter.
• Data value.
• Data address.
• VMID.
• Context ID.
• Instruction address.

Bit field descriptions

The TRCIDR2 is a 32-bit register.

Figure 5-71: TRCIDR2 bit assignments

31

0

25 24

14

15

10 9

5 4

IASIZE

29 28

20 19

CIDSIZE

VMIDSIZE

DASIZE

DVSIZE

CCSIZE

RES

0

VMIDOPT

RES0, [31]

RES0

Reserved.

VMIDOPT, [30:29]

Indicates the options for observing the Virtual context identifier:

0x1

VMIDOPT is implemented.

CCSIZE, [28:25]

Size of the cycle counter in bits minus 12:

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

593

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

0x0

The cycle counter is 12 bits in length.

DVSIZE, [24:20]

Data value size in bytes:

0x00

Data value tracing is not implemented.

DASIZE, [19:15]

Data address size in bytes:

0x00

Data address tracing is not implemented.

VMIDSIZE, [14:10]

Virtual Machine ID size:

0x4

Maximum of 32-bit Virtual Machine ID size.

CIDSIZE, [9:5]

Context ID size in bytes:

0x4

Maximum of 32-bit Context ID size.

IASIZE, [4:0]

Instruction address size in bytes:

0x8

Maximum of 64-bit address size.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCIDR2 can be accessed through the external debug interface, offset 

0x1E8

.

5.8.32 TRCIDR3, ID Register 3

The TRCIDR3 indicates:

• Whether TRCVICTLR is supported.
• The number of cores available for tracing.
• If an Exception level supports instruction tracing.
• The minimum threshold value for instruction trace cycle counting.
• Whether the synchronization period is fixed.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

594

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Bit field descriptions

The TRCIDR3 is a 32-bit register.

Figure 5-72: TRCIDR3 bit assignments

31

0

25 24

16 15

11

12

5 4

CCITMIN

30

28

20 19

23

27 26

EXLEVEL_S
EXLEVEL_NS

NOOVERFLOW

NUMPROC

SYSSTALL

STALLCTL

SYNCPR

TRCERR

RES

0

NOOVERFLOW, [31]

Indicates whether TRCSTALLCTLR.NOOVERFLOW is implemented:

0

TRCSTALLCTLR.NOOVERFLOW is not implemented.

NUMPROC, [30:28]

Indicates the number of cores available for tracing:

0b000

The trace unit can trace one core, ETM trace unit sharing not

supported.

SYSSTALL, [27]

Indicates whether stall control is implemented:

0

The system does not support core stall control.

STALLCTL, [26]

Indicates whether TRCSTALLCTLR is implemented:

0

TRCSTALLCTLR is not implemented.

This field is used in conjunction with SYSSTALL.

SYNCPR, [25]

Indicates whether there is a fixed synchronization period:

0

TRCSYNCPR is read/write so software can change the

synchronization period.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

595

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

TRCERR, [24]

Indicates whether TRCVICTLR.TRCERR is implemented:

1

TRCVICTLR.TRCERR is implemented.

EXLEVEL_NS, [23:20]

Each bit controls whether instruction tracing in Non-secure state is implemented for the

corresponding Exception level:

0b0111

Instruction tracing is implemented for Non-secure EL0, EL1, and EL2

Exception levels.

EXLEVEL_S, [19:16]

Each bit controls whether instruction tracing in Secure state is implemented for the

corresponding Exception level:

0b1011

Instruction tracing is implemented for Secure EL0, EL1, and EL3

Exception levels.

RES0, [15:12]

RES0

Reserved.

CCITMIN, [11:0]

The minimum value that can be programmed in TRCCCCTLR.THRESHOLD:

0x004

Instruction trace cycle counting minimum threshold is 4.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCIDR3 can be accessed through the external debug interface, offset 

0x1EC

.

5.8.33 TRCIDR4, ID Register 4

The TRCIDR4 indicates the resources available in the ETM trace unit.

Bit field descriptions

The TRCIDR4 is a 32-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

596

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-73: TRCIDR4 bit assignments

31

0

23

24

16 15

8 7

3

4

27

28

20 19

NUMDVC

NUMPC

NUMSSCC

NUMCIDC

NUMACPAIRS

9

11

12

NUMRSPAIRS

NUMVMIDC

SUPPDAC

RES

0

NUMVMIDC, [31:28]

Indicates the number of VMID comparators available for tracing:

0x1

One VMID comparator is available.

NUMCIDC, [27:24]

Indicates the number of CID comparators available for tracing:

0x1

One Context ID comparator is available.

NUMSSCC, [23:20]

Indicates the number of single-shot comparator controls available for tracing:

0x1

One single-shot comparator control is available.

NUMRSPAIRS, [19:16]

Indicates the number of resource selection pairs available for tracing:

0x7

Eight resource selection pairs are available.

NUMPC, [15:12]

Indicates the number of core comparator inputs available for tracing:

0x0

Core comparator inputs are not implemented.

RES0, [11:9]

RES0

Reserved.

SUPPDAC, [8]

Indicates whether the implementation supports data address comparisons: This value is:

0

Data address comparisons are not implemented.

NUMDVC, [7:4]

Indicates the number of data value comparators available for tracing:

0x0

Data value comparators are not implemented.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

597

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

NUMACPAIRS, [3:0]

Indicates the number of address comparator pairs available for tracing:

0x4

Four address comparator pairs are implemented.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCIDR4 can be accessed through the external debug interface, offset 

0x1F0

.

5.8.34 TRCIDR5, ID Register 5

The TRCIDR5 returns how many resources the trace unit supports.

Bit field descriptions

Figure 5-74: TRCIDR5 bit assignments

31

0

25 24

16 15

8

27

28

NUMEXTIN

TRACEIDSIZE

NUMEXTINSEL

9

11

12

ATBTRIG

30

23 22 21

LPOVERRIDE
NUMSEQSTATE
NUMCNTR
REDFUNCNTR

RES

0

REDFUNCNTR, [31]

Reduced Function Counter implemented:

0

Reduced Function Counter not implemented.

NUMCNTR, [30:28]

Number of counters implemented:

0b010

Two counters implemented.

NUMSEQSTATE, [27:25]

Number of sequencer states implemented:

0b100

Four sequencer states implemented.

RES0, [24]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

598

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

LPOVERRIDE, [23]

Low-power state override support:

1

Low-power state override support is implemented.

ATBTRIG, [22]

ATB trigger support:

1

ATB trigger support implemented.

TRACEIDSIZE, [21:16]

Number of bits of trace ID:

0x07

Seven-bit trace ID implemented.

RES0, [15:12]

RES0

Reserved.

NUMEXTINSEL, [11:9]

Number of external input selectors implemented:

0b100

Four external input selectors implemented.

NUMEXTIN, [8:0]

Number of external inputs implemented:

0x1E

30 external inputs implemented.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCIDR5 can be accessed through the external debug interface, offset 

0x1F4

.

5.8.35 TRCIDR8, ID Register 8

The TRCIDR8 returns the maximum speculation depth of the instruction trace stream.

Bit field descriptions

The TRCIDR8 is a 32-bit register.

Figure 5-75: TRCIDR8 bit assignments

31

0

MAXSPEC

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

599

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

MAXSPEC, [31:0]

The maximum number of P0 elements in the trace stream that can be Speculative at any

time.

0

Maximum speculation depth of the instruction trace stream.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCIDR8 can be accessed through the external debug interface, offset 

0x180

.

5.8.36 TRCIDR9, ID Register 9

The TRCIDR9 returns the number of P0 right-hand keys that the trace unit can use.

Bit field descriptions

The TRCIDR9 is a 32-bit register.

Figure 5-76: TRCIDR9 bit assignments

31

0

NUMP0KEY

NUMP0KEY, [31:0]

The number of P0 right-hand keys that the trace unit can use.

0

Number of P0 right-hand keys.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCIDR9 can be accessed through the external debug interface, offset 

0x184

.

5.8.37 TRCIDR10, ID Register 10

The TRCIDR10 returns the number of P1 right-hand keys that the trace unit can use.

Bit field descriptions

The TRCIDR10 is a 32-bit register.

Figure 5-77: TRCIDR10 bit assignments

31

0

NUMP1KEY

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

600

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

NUMP1KEY, [31:0]

The number of P1 right-hand keys that the trace unit can use.

0

Number of P1 right-hand keys.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCIDR10 can be accessed through the external debug interface, offset 

0x188

.

5.8.38 TRCIDR11, ID Register 11

The TRCIDR11 returns the number of special P1 right-hand keys that the trace unit can use.

Bit field descriptions

The TRCIDR11 is a 32-bit register.

Figure 5-78: TRCIDR11 bit assignments

31

0

NUMP1SPC

NUMP1SPC, [31:0]

The number of special P1 right-hand keys that the trace unit can use.

0

Number of special P1 right-hand keys.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCIDR11 can be accessed through the external debug interface, offset 

0x18C

.

5.8.39 TRCIDR12, ID Register 12

The TRCIDR12 returns the number of conditional instruction right-hand keys that the trace unit

can use.

Bit field descriptions

The TRCIDR12 is a 32-bit register.

Figure 5-79: TRCIDR12 bit assignments

31

0

NUMCONDKEY

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

601

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

NUMCONDKEY, [31:0]

The number of conditional instruction right-hand keys that the trace unit can use, including

normal and special keys.

0

Number of conditional instruction right-hand keys.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCIDR12 can be accessed through the external debug interface, offset 

0x190

.

5.8.40 TRCIDR13, ID Register 13

The TRCIDR13 returns the number of special conditional instruction right-hand keys that the trace

unit can use.

Bit field descriptions

The TRCIDR13 is a 32-bit register.

Figure 5-80: TRCIDR13 bit assignments

31

0

NUMCONDSPC

NUMCONDSPC, [31:0]

The number of special conditional instruction right-hand keys that the trace unit can use,

including normal and special keys.

0

Number of special conditional instruction right-hand keys.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCIDR13 can be accessed through the external debug interface, offset 

0x194

.

5.8.41 TRCIMSPEC0, IMPLEMENTATION SPECIFIC Register 0

The TRCIMSPEC0 shows the presence of any 

IMPLEMENTATION SPECIFIC

 features, and enables any

features that are provided.

Bit field descriptions

The TRCIMSPEC0 is a 32-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

602

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-81: TRCIMSPEC0 bit assignments

31

0

4

SUPPORT

3

RES

0

RES0, [31:4]

RES0

Reserved.

SUPPORT, [3:0]

0

No 

IMPLEMENTATION SPECIFIC

 extensions are supported.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCIMSPEC0 can be accessed through the external debug interface, offset 

0x1C0

.

5.8.42 TRCITATBIDR, Integration ATB Identification Register

The TRCITATBIDR sets the state of output pins, which are mentioned in the bit descriptions in this

section.

Bit field descriptions

The TRCITATBIDR is a 32-bit register.

Figure 5-82: TRCITATBIDR bit assignments

ID

Reserved

31

0

7 6

[31:7]

Reserved. Read undefined.

ID, [6:0]

Drives the ATIDMn[6:0] output pins.

When a bit is set to 0, the corresponding output pin is LOW.

When a bit is set to 1, the corresponding output pin is HIGH.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

603

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

The TRCITATBIDR bit values correspond to the physical state of the output pins.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCITATBIDR can be accessed through the external debug interface, offset 

0xEE4

.

5.8.43 TRCITCTRL, Integration Mode Control Register

The TRCITCTRL enables topology detection or integration testing, by putting the ETM trace unit

into integration mode.

Bit field descriptions

The TRCITCTRL is a 32-bit register.

Figure 5-83: TRCITCTRL bit assignments

31

0

IME

1

RES

0

RES0, [31:1]

RES0

Reserved.

IME, [0]

Integration mode enable bit. The possible values are:

0

The trace unit is not in integration mode.

1

The trace unit is in integration mode. This mode enables:
• A debug agent to perform topology detection.
• SoC test software to perform integration testing.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCITCTRL can be accessed through the external debug interface, offset 

0xF00

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

604

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.8.44 TRCITIATBINR, Integration Instruction ATB In Register

The TRCITIATBINR reads the state of the input pins that are described in this section.

Bit field descriptions

The TRCITIATBINR is a 32-bit register.

Figure 5-84: TRCITIATBINR bit assignments

31

0

AFVALIDM

Reserved

2 1

ATREADYM

For all non-reserved bits:
• When an input pin is LOW, the corresponding register bit is 0.
• When an input pin is HIGH, the corresponding register bit is 1.
• The TRCITIATBINR bit values always correspond to the physical state of the input pins.

[31:2]

Reserved. Read undefined.

AFVALIDM, [1]

Returns the value of the AFVALIDMn input pin.

ATREADYM, [0]

Returns the value of the ATREADYMn input pin.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCITIATBINR can be accessed through the external debug interface, offset 

0xEF4

.

5.8.45 TRCITIATBOUTR, Integration Instruction ATB Out Register

The TRCITIATBOUTR sets the state of the output pins that are mentioned in the bit descriptions in

this section.

Bit field descriptions

The TRCITIATBOUTR is a 32-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

605

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-85: TRCITIATBOUTR bit assignments

31

0

AFREADY

Reserved

2 1

ATVALID

8 7

9

10

BYTES

Reserved

For all non-reserved bits:
• When a bit is set to 0, the corresponding output pin is LOW.
• When a bit is set to 1, the corresponding output pin is HIGH.
• The TRCITIATBOUTR bit values always correspond to the physical state of the output pins.

[31:10]

Reserved. Read undefined.

BYTES, [9:8]

Drives the ATBYTESMn[1:0] output pins.

[7:2]

Reserved. Read undefined.

AFREADY, [1]

Drives the AFREADYMn output pin.

ATVALID, [0]

Drives the ATVALIDMn output pin.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCITIATBOUTR can be accessed through the external debug interface, offset 

0xEFC

.

5.8.46 TRCITIDATAR, Integration Instruction ATB Data Register

The TRCITIDATAR sets the state of the ATDATAMn output pins that are shown in the

TRCITIDATAR bit assignments table.

Bit field descriptions

The TRCITIDATAR is a 32-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

606

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-86: TRCITIDATAR bit assignments

31

0

2 1

ATDATAM[31]

3

4

5

ATDATAM[23]
ATDATAM[15]

ATDATAM[7]
ATDATAM[0]

RES

0

RES0, [31:5]

RES0

Reserved.

ATDATAM[31], [4]

Drives the ATDATAM[31] output. 

14

ATDATAM[23], [3]

Drives the ATDATAM[23] output.

14

ATDATAM[15], [2]

Drives the ATDATAM[15] output.

14

ATDATAM[7], [1]

Drives the ATDATAM[7] output.

14

ATDATAM[0], [0]

Drives the ATDATAM[0] output.

14

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCITIDATAR can be accessed through the external debug interface, offset 

0xEEC

.

5.8.47 TRCLAR, Software Lock Access Register

The TRCLAR controls access to registers using the memory-mapped interface, when

PADDRDBG31 is LOW.

Bit field descriptions

The TRCLAR is a 32-bit register.

14

When a bit is set to 

0

, the corresponding output pin is LOW. When a bit is set to 

1

, the corresponding output pin is

HIGH. The TRCITIDATAR bit values correspond to the physical state of the output pins.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

607

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-87: TRCLAR bit assignments

31

0

RAZ/WI

RAZ/WI, [31:0]

Read-As-Zero, write ignore.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCLAR can be accessed through the external debug interface, offset 

0xFB0

.

5.8.48 TRCLSR, Software Lock Status Register

The TRCLSR determines whether the software lock is implemented, and indicates the current

status of the software lock.

Bit field descriptions

The TRCLSR is a 32-bit register.

Figure 5-88: TRCLSR bit assignments

31

0

RAZ/WI

RAZ/WI, [31:0]

Read-As-Zero, write ignore.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCLSR can be accessed through the external debug interface, offset 

0xFB4

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

608

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.8.49 TRCOSLAR, OS Lock Access Register

The TRCOSLAR sets and clears the OS Lock, to lock out external debugger accesses to the ETM

trace unit registers.

Bit field descriptions

The TRCOSLAR is a 32-bit register.

Figure 5-89: TRCOSLAR bit assignments

31

1 0

OSLK

RES

0

RES0, [31:1]

RES0

Reserved.

OSLK, [0]

OS Lock key value:

0

Unlock the OS Lock.

1

Lock the OS Lock.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCOSLAR can be accessed through the external debug interface, offset 

0x300

.

5.8.50 TRCOSLSR, OS Lock Status Register

The TRCOSLSR returns the status of the OS Lock.

Bit field descriptions

The TRCOSLSR is a 32-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

609

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-90: TRCOSLSR bit assignments

31

1 0

OSLM[1]

3 2

4

nTT

OSLK

OSLM[0]

RES

0

RES0, [31:4]

RES0

Reserved.

OSLM[1], [3]

OS Lock model [1] bit. This bit is combined with OSLM[0] to form a two-bit field that

indicates the OS Lock model is implemented.

The value of this field is always 

0b10

, indicating that the OS Lock is implemented.

nTT, [2]

This bit is RAZ, that indicates that software must perform a 32-bit write to update the

TRCOSLAR.

OSLK, [1]

OS Lock status bit:

0

OS Lock is unlocked.

1

OS Lock is locked.

OSLM[0], [0]

OS Lock model [0] bit. This bit is combined with OSLM[1] to form a two-bit field that

indicates the OS Lock model is implemented.

The value of this field is always 

0b10

, indicating that the OS Lock is implemented.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCOSLSR can be accessed through the external debug interface, offset 

0x304

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

610

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.8.51 TRCPDCR, Power Down Control Register

The TRCPDCR request to the system power controller to keep the ETM trace unit powered up.

Bit field descriptions

The TRCPDCR is a 32-bit register.

Figure 5-91: TRCPDCR bit assignments

31

4 3 2

0

PU

RES

0

RES0, [31:4]

RES0

Reserved.

PU, [3]

Powerup request, to request that power to the ETM trace unit and access to the trace

registers is maintained:

0

Power not requested.

1

Power requested.

This bit is reset to 0 on a trace unit reset.

RES0, [2:0]

RES0

Reserved.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCPDCR can be accessed through the external debug interface, offset 

0x310

.

5.8.52 TRCPDSR, Power Down Status Register

The TRCPDSR indicates the power down status of the ETM trace unit.

Bit field descriptions

The TRCPDSR is a 32-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

611

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-92: TRCPDSR bit assignments

31

6 5 4

2 1 0

OSLK

STICKYPD

POWER

RES

0

RES0, [31:6]

RES0

Reserved.

OSLK, [5]

OS lock status.

0

The OS Lock is unlocked.

1

The OS Lock is locked.

RES0, [4:2]

RES0

Reserved.

STICKYPD, [1]

Sticky power down state.

0

Trace register power has not been removed since the TRCPDSR was

last read.

1

Trace register power has been removed since the TRCPDSR was last

read.

This bit is set to 1 when power to the ETM trace unit registers is removed, to indicate that

programming state has been lost. It is cleared after a read of the TRCPDSR.

POWER, [0]

Indicates the ETM trace unit is powered:

0

ETM trace unit is not powered. The trace registers are not accessible

and they all return an error response.

1

ETM trace unit is powered. All registers are accessible.

If a system implementation allows the ETM trace unit to be powered off independently

of the Debug power domain, the system must handle accesses to the ETM trace unit

appropriately.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

612

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

The TRCPDSR can be accessed through the external debug interface, offset 

0x314

.

5.8.53 TRCPIDR0, ETM Peripheral Identification Register 0

The TRCPIDR0 provides information to identify a trace component.

Bit field descriptions

The TRCPIDR0 is a 32-bit register.

Figure 5-93: TRCPIDR0 bit assignments

31

0

7

8

Part_0

RES

0

RES0, [31:8]

RES0

Reserved.

Part_0, [7:0]

0x05

 

Least significant byte of the ETM trace unit part number.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCPIDR0 can be accessed through the external debug interface, offset 

0xFE0

.

5.8.54 TRCPIDR1, ETM Peripheral Identification Register 1

The TRCPIDR1 provides information to identify a trace component.

Bit field descriptions

The TRCPIDR1 is a 32-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

613

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-94: TRCPIDR1 bit assignments

31

0

3

4

Part_1

7

8

DES_0

RES

0

RES0, [31:8]

RES0

Reserved.

DES_0, [7:4]

0xB

Arm Limited. This is bits[3:0] of JEP106 ID code.

Part_1, [3:0]

0xD

Most significant four bits of the ETM trace unit part number.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCPIDR1 can be accessed through the external debug interface, offset 

0xFE4

.

5.8.55 TRCPIDR2, ETM Peripheral Identification Register 2

The TRCPIDR2 provides information to identify a trace component.

Bit field descriptions

The TRCPIDR2 is a 32-bit register.

Figure 5-95: TRCPIDR2 bit assignments

31

0

3

4

DES_1

7

8

Revision

JEDEC

2

RES

0

RES0, [31:8]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

614

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Revision, [7:4]

0x3

r2p0.

JEDEC, [3]

0b1

RES1

. Indicates a JEP106 identity code is used.

DES_1, [2:0]

0b011

Arm Limited. This is bits[6:4] of JEP106 ID code.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCPIDR2 can be accessed through the external debug interface, offset 

0xFE8

.

5.8.56 TRCPIDR3, ETM Peripheral Identification Register 3

The TRCPIDR3 provides information to identify a trace component.

Bit field descriptions

The TRCPIDR3 is a 32-bit register.

Figure 5-96: TRCPIDR3 bit assignments

31

0

3

4

CMOD

7

8

REVAND

RES

0

RES0, [31:8]

RES0

Reserved.

REVAND, [7:4]

0x0

Part minor revision.

CMOD, [3:0]

0x0

Not customer modified.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

615

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

The TRCPIDR3 can be accessed through the external debug interface, offset 

0xFEC

.

5.8.57 TRCPIDR4, ETM Peripheral Identification Register 4

The TRCPIDR4 provides information to identify a trace component.

Bit field descriptions

The TRCPIDR4 is a 32-bit register.

Figure 5-97: TRCPIDR4 bit assignments

31

0

3

4

DES_2

7

8

Size

RES

0

RES0, [31:8]

RES0

Reserved.

Size, [7:4]

0x0

Size of the component. Log2 the number of 4KB pages from the start

of the component to the end of the component ID registers.

DES_2, [3:0]

0x4

Arm Limited. This is bits[3:0] of the JEP106 continuation code.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCPIDR4 can be accessed through the external debug interface, offset 

0xFD0

.

5.8.58 TRCPIDRn, ETM Peripheral Identification Registers 5-7

No information is held in the Peripheral ID5, Peripheral ID6, and Peripheral ID7 Registers.

They are reserved for future use and are 

RES0

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

616

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.8.59 TRCPRGCTLR, Programming Control Register

The TRCPRGCTLR enables the ETM trace unit.

Bit field descriptions

The TRCPRGCTLR is a 32-bit register.

Figure 5-98: TRCPRGCTLR bit assignments

31

1 0

EN

RES

0

RES0, [31:1]

RES0

Reserved.

EN, [0]

Trace program enable:

0

The ETM trace unit interface in the core is disabled, and clocks are

enabled only when necessary to process APB accesses, or drain any

already generated trace. This is the reset value.

1

The ETM trace unit interface in the core is enabled, and clocks are

enabled. Writes to most trace registers are 

IGNORED

.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCPRGCTLR can be accessed through the external debug interface, offset 

0x004

.

5.8.60 TRCRSCTLRn, Resource Selection Control Registers 2-15

The TRCRSCTLRn registers control the trace resources. There are eight resource pairs, the first

pair is predefined as {0,1,pair=0} and having reserved select registers. This leaves seven pairs to be

implemented as programmable selectors.

Bit field descriptions

The TRCRSCTLRn registers are 32-bit registers.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

617

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-99: TRCRSCTLRn bit assignments

31

0

16 15

20 19

INV

PAIRINV

22 21

SELECT

GROUP

18

8 7

RES

0

RES0, [31:22]

RES0

Reserved

PAIRINV, [21]

Inverts the result of a combined pair of resources.

This bit is implemented only on the lower register for a pair of resource selectors.

INV, [20]

Inverts the selected resources:

0

Resource is not inverted.

1

Resource is inverted.

RES0, [19]

RES0

Reserved

GROUP, [18:16]

Selects a group of resources. See the 

 Arm

®

 ETM Architecture Specification, ETMv4

 for more

information.

RES0, [15:8]

RES0

Reserved

SELECT, [7:0]

Selects one or more resources from the required group. One bit is provided for each resource

from the group.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCRSCTLRn registers can be accessed through the external debug interface, offset

0x208

-

0x023C

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

618

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.8.61 TRCSEQEVRn, Sequencer State Transition Control Registers 0-2

The TRCSEQEVRn registers define the sequencer transitions that progress to the next state or

backwards to the previous state. The ETM trace unit implements a sequencer state machine with

up to four states.

Bit field descriptions

The TRCSEQEVRn registers are 32-bit registers.

Figure 5-100: TRCSEQEVRn bit assignments

31

0

16

B SEL

F SEL

15

8 7

11

12

14

4 3

6

B TYPE

F TYPE

RES

0

RES0, [31:16]

RES0

Reserved

B TYPE, [15]

Selects the resource type to move backwards to this state from the next state:

0

Single selected resource

1

Boolean combined resource pair

RES0, [14:12]

RES0

Reserved

B SEL, [11:8]

Selects the resource number, based on the value of B TYPE:

When B TYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0].

When B TYPE is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0].

F TYPE, [7]

Selects the resource type to move forwards from this state to the next state:

0

Single selected resource

1

Boolean combined resource pair

RES0, [6:4]

RES0

Reserved

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

619

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

F SEL, [3:0]

Selects the resource number, based on the value of F TYPE:

When F TYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0].

When F TYPE is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0].

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCSEQEVRn registers can be accessed through the external debug interface, offsets:

TRCSEQEVR0

0x100

TRCSEQEVR1

0x104

TRCSEQEVR2

0x108

5.8.62 TRCSEQRSTEVR, Sequencer Reset Control Register

The TRCSEQRSTEVR resets the sequencer to state 0.

Bit field descriptions

The TRCSEQRSTEVR is a 32-bit register.

Figure 5-101: TRCSEQRSTEVR bit assignments

31

0

RESETSEL

8 7

4 3

6

RESETTYPE

RES

0

RES0, [31:8]

RES0

Reserved.

RESETTYPE, [7]

Selects the resource type to move back to state 0:

0

Single selected resource.

1

Boolean combined resource pair.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

620

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

RES0, [6:4]

RES0

Reserved.

RESETSEL, [3:0]

Selects the resource number, based on the value of RESETTYPE:

When RESETTYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0].

When RESETTYPE is 1, selects a Boolean combined resource pair from 0-7 defined by

bits[2:0].

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCSEQRSTEVR can be accessed through the external debug interface, offset 

0x118

.

5.8.63 TRCSEQSTR, Sequencer State Register

The TRCSEQSTR holds the value of the current state of the sequencer.

Bit field descriptions

The TRCSEQSTR is a 32-bit register.

Figure 5-102: TRCSEQSTR bit assignments

31

1 0

2

STATE

RES

0

RES0, [31:2]

RES0

Reserved.

STATE, [1:0]

Current sequencer state:

0b00

State 0.

0b01

State 1.

0b10

State 2.

0b11

State 3.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

621

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

The TRCSEQSTR can be accessed through the external debug interface, offset 

0x11C

.

5.8.64 TRCSSCCR0, Single-Shot Comparator Control Register 0

The TRCSSCCR0 controls the single-shot comparator.

Bit field descriptions

The TRCSSCCR0 is a 32-bit register.

Figure 5-103: TRCSSCCR0 bit assignments

31

20 19

16 15

8 7

0

ARC

SAC

24 23

25

RST

RES

0

RES0, [31:25]

RES0

Reserved.

RST, [24]

Enables the single-shot comparator resource to be reset when it occurs, to enable another

comparator match to be detected:

1

Reset enabled. Multiple matches can occur.

RES0, [23:20]

RES0

Reserved.

ARC, [19:16]

Selects one or more address range comparators for single-shot control.

One bit is provided for each implemented address range comparator.

RES0, [15:8]

RES0

Reserved.

SAC, [7:0]

Selects one or more single address comparators for single-shot control.

One bit is provided for each implemented single address comparator.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

622

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCSSCCR0 can be accessed through the external debug interface, offset 

0x280

.

5.8.65 TRCSSCSR0, Single-Shot Comparator Status Register 0

The TRCSSCSR0 indicates the status of the single-shot comparator. TRCSSCSR0 is sensitive to

instruction addresses.

Bit field descriptions

The TRCSSCSR0 is a 32-bit register.

Figure 5-104: TRCSSCSR0 bit assignments

31 30

3 2 1 0

STATUS

DV
DA

INST

RES

0

STATUS, [31]

Single-shot status. This indicates whether any of the selected comparators have matched:

0

Match has not occurred.

1

Match has occurred at least once.

When programming the ETM trace unit, if TRCSSCCRn.RST is b0, the STATUS bit must be

explicitly written to 0 to enable this single-shot comparator control.

RES0, [30:3]

RES0

Reserved.

DV, [2]

Data value comparator support:

0

Single-shot data value comparisons not supported.

DA, [1]

Data address comparator support:

0

Single-shot data address comparisons not supported.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

623

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

INST, [0]

Instruction address comparator support:

1

Single-shot instruction address comparisons supported.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCSSCSR0 can be accessed through the external debug interface, offset 

0x2A0

.

5.8.66 TRCSTALLCTLR, Stall Control Register

The TRCSTALLCTLR enables the ETM trace unit to stall the Cortex

®

-A55 core if the ETM trace

unit FIFO overflows.

Bit field descriptions

The TRCSTALLCTLR is a 32-bit register.

Figure 5-105: TRCSTALLCTLR bit assignments

31

0

7

4 3

8

9

2 1

ISTALL

LEVEL

RES

0

RES0, [31:9]

RES0

Reserved.

ISTALL, [8]

Instruction stall bit. Controls if the trace unit can stall the core when the instruction trace

buffer space is less than LEVEL:

0

The trace unit does not stall the core.

1

The trace unit can stall the core.

RES0, [7:4]

RES0

Reserved.

LEVEL, [3:2]

Threshold level field. The field can support 4 monotonic levels from 

0b00

 to 

0b11

, where:

0b00

Zero invasion. This setting has a greater risk of an ETM trace unit

FIFO overflow.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

624

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

0b11

Maximum invasion occurs but there is less risk of a FIFO overflow.

RES0, [1:0]

RES0

Reserved.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCSTALLCTLR can be accessed through the external debug interface, offset 

0x02C

.

5.8.67 TRCSTATR, Status Register

The TRCSTATR indicates the ETM trace unit status.

Bit field descriptions

The TRCSTATR is a 32-bit register.

Figure 5-106: TRCSTATR bit assignments

31

1 0

IDLE

2

PMSTABLE

RES

0

RES0, [31:2]

RES0

Reserved.

PMSTABLE, [1]

Indicates whether the ETM trace unit registers are stable and can be read:

0

The programmers model is not stable.

1

The programmers model is stable.

IDLE, [0]

Idle status:

0

The ETM trace unit is not idle.

1

The ETM trace unit is idle.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCSTATR can be accessed through the external debug interface, offset 

0x00C

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

625

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.8.68 TRCSYNCPR, Synchronization Period Register

The TRCSYNCPR controls how often periodic trace synchronization requests occur.

Bit field descriptions

The TRCSYNCPR is a 32-bit register.

Figure 5-107: TRCSYNCPR bit assignments

31

0

4

5

PERIOD

RES

0

RES0, [31:5]

RES0

Reserved.

PERIOD, [4:0]

Defines the number of bytes of trace between synchronization requests as a total of the

number of bytes generated by both the instruction and data streams. The number of bytes is

2

N

 where N is the value of this field:

• A value of zero disables these periodic synchronization requests, but does not disable

other synchronization requests.

• The minimum value that can be programmed, other than zero, is 8, providing a minimum

synchronization period of 256 bytes.

• The maximum value is 20, providing a maximum synchronization period of 2

20

 bytes.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCSYNCPR can be accessed through the external debug interface, offset 

0x034

.

5.8.69 TRCTRACEIDR, Trace ID Register

The TRCTRACEIDR sets the trace ID for instruction trace.

Bit field descriptions

The TRCTRACEIDR is a 32-bit register.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

626

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Figure 5-108: TRCTRACEIDR bit Assignments

31

0

TRACEID

6

7

RES

0

RES0, [31:7]

RES0

Reserved.

TRACEID, [6:0]

Trace ID value. When only instruction tracing is enabled, this provides the trace ID.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCTRACEIDR can be accessed through the external debug interface, offset 

0x040

.

5.8.70 TRCTSCTLR, Global Timestamp Control Register

The TRCTSCTLR controls the insertion of global timestamps in the trace streams. When the

selected event is triggered, the trace unit inserts a global timestamp into the trace streams. The

event is selected from one of the Resource Selectors.

Bit field descriptions

The TRCTSCTLR is a 32-bit register.

Figure 5-109: TRCTSCTLR bit assignments

31

0

8 7

SEL

3

6

4

TYPE

RES

0

RES0, [31:8]

RES0

Reserved

TYPE, [7]

Single or combined resource selector.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

627

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

RES0, [6:4]

RES0

Reserved

SEL, [3:0]

Identifies the resource selector to use.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCTSCTLR can be accessed through the external debug interface, offset 

0x030

.

5.8.71 TRCVICTLR, ViewInst Main Control Register

The TRCVICTLR controls instruction trace filtering.

Bit field descriptions

The TRCVICTLR is a 32-bit register.

Figure 5-110: TRCVICTLR bit assignments

31

0

7

8

9

10

11

15

12

16

19

20

23

24

SSSTATUS
TRCRESET
TRCERR

EXLEVEL_S
EXLEVEL_NS

6

3

4

SEL

TYPE

RES

0

RES0, [31:24]

RES0

Reserved.

EXLEVEL_NS, [23:20]

In Non-secure state, each bit controls whether instruction tracing is enabled for the

corresponding Exception level:

0

Trace unit generates instruction trace, in Non-secure state, for

Exception level 

n

.

1

Trace unit does not generate instruction trace, in Non-secure state,

for Exception level 

n

.

The Exception levels are:

Bit[20]

Exception level 0.

Bit[21]

Exception level 1.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

628

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

Bit[22]

Exception level 2.

Bit[23]

RAZ/WI. Instruction tracing is not implemented for Exception level 3.

EXLEVEL_S, [19:16]

In Secure state, each bit controls whether instruction tracing is enabled for the corresponding

Exception level:

0

Trace unit generates instruction trace, in Secure state, for Exception

level 

n

.

1

Trace unit does not generate instruction trace, in Secure state, for

Exception level 

n

.

The Exception levels are:

Bit[16]

Exception level 0.

Bit[17]

Exception level 1.

Bit[18]

RAZ/WI. Instruction tracing is not implemented for Exception level 2.

Bit[19]

Exception level 3.

RES0, [15:12]

RES0

Reserved.

TRCERR, [11]

Selects whether a system error exception must always be traced:

0

System error exception is traced only if the instruction or exception

immediately before the system error exception is traced.

1

System error exception is always traced regardless of the value of

ViewInst.

TRCRESET, [10]

Selects whether a reset exception must always be traced:

0

Reset exception is traced only if the instruction or exception

immediately before the reset exception is traced.

1

Reset exception is always traced regardless of the value of ViewInst.

SSSTATUS, [9]

Indicates the current status of the start/stop logic:

0

Start/stop logic is in the stopped state.

1

Start/stop logic is in the started state.

RES0, [8]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

629

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

TYPE, [7]

Selects the resource type for the viewinst event:

0

Single selected resource.

1

Boolean combined resource pair.

RES0, [6:4]

RES0

Reserved.

SEL, [3:0]

Selects the resource number to use for the viewinst event, based on the value of TYPE:

When TYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0].

When TYPE is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0].

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCVICTLR can be accessed through the external debug interface, offset 

0x080

.

5.8.72 TRCVIIECTLR, ViewInst Include-Exclude Control Register

The TRCVIIECTLR defines the address range comparators that control the ViewInst include/

exclude control.

Bit field descriptions

The TRCVIIECTLR is a 32-bit register.

Figure 5-111: TRCVIIECTLR bit assignments

31

0

EXCLUDE

16 15

INCLUDE

19

20

3

4

RES

0

RES0, [31:20]

RES0

Reserved.

EXCLUDE, [19:16]

Defines the address range comparators for ViewInst exclude control. One bit is provided for

each implemented Address Range Comparator.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

630

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

RES0, [15:4]

RES0

Reserved.

INCLUDE, [3:0]

Defines the address range comparators for ViewInst include control.

Selecting no include comparators indicates that all instructions must be included. The exclude

control indicates which ranges must be excluded.

One bit is provided for each implemented Address Range Comparator.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCVIIECTLR can be accessed through the external debug interface, offset 

0x084

.

5.8.73 TRCVISSCTLR, ViewInst Start-Stop Control Register

The TRCVISSCTLR defines the single address comparators that control the ViewInst Start/Stop

logic.

Bit field descriptions

The TRCVISSCTLR is a 32-bit register.

Figure 5-112: TRCVISSCTLR bit assignments

31

0

STOP

16 15

8

START

23

24

7

RES

0

RES0, [31:24]

RES0

Reserved.

STOP, [23:16]

Defines the single address comparators to stop trace with the ViewInst Start/Stop control.

One bit is provided for each implemented single address comparator.

RES0, [15:8]

RES0

Reserved.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

631

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

START, [7:0]

Defines the single address comparators to start trace with the ViewInst Start/Stop control.

One bit is provided for each implemented single address comparator.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCVISSCTLR can be accessed through the external debug interface, offset 

0x088

.

5.8.74 TRCVMIDCVR0, VMID Comparator Value Register 0

The TRCVMIDCVR0 contains a VMID value.

Bit field descriptions

The TRCVMIDCVR0 is a 64-bit register.

Figure 5-113: TRCVMIDCVR0 bit assignments

63

0

VALUE

32 31

RES

0

RES0, [63:32]

RES0

Reserved.

VALUE, [31:0]

 

The VMID value.

Bit fields and details not provided in this description are architecturally defined. See the 

 Arm

®

Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCVMIDCVR0 can be accessed through the external debug interface, offset 

0x640

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

632

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Debug registers

5.8.75 TRCVMIDCCTLR0, Virtual context identifier Comparator Control

Register 0

The TRCVMIDCCTLR0 contains the Virtual Machine Identifier mask value for the TRCVMIDCVR0

register.

Bit field descriptions

The TRCVMIDCCTLR0 is a 32-bit register.

Figure 5-114: TRCVMIDCCTLR0 bit assignments

31

0

4

COMP0

3

RES

0

RES0, [31:4]

RES0

Reserved.

COMP0, [3:0]

Controls the mask value that the trace unit applies to TRCVMIDCVR0. Each bit in this field

corresponds to a byte in TRCVMIDCVR0. When a bit is:

0

The trace unit includes the relevant byte in TRCVMIDCVR0 when it

performs the Virtual context ID comparison.

1

The trace unit ignores the relevant byte in TRCVMIDCVR0 when it

performs the Virtual context ID comparison.

Bit fields and details that are not provided in this description are architecturally defined. See the 

Arm

®

 Embedded Trace Macrocell Architecture Specification ETMv4 

.

The TRCVMIDCCTLR0 can be accessed through the external debug interface, offset 

0x688

.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

633

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

AArch32 UNPREDICTABLE Behaviors

Appendix A AArch32 UNPREDICTABLE

Behaviors

This appendix describes the cases in which the Cortex

®

-A55 core implementation diverges from

the preferred behavior described in Arm

®

v8‑A AArch32 

UNPREDICTABLE

 behaviors.

A.1 Use of R15 by Instruction

All uses of R15 as a named register specifier for a source register that is described as

UNPREDICTABLE

 take an 

UNDEFINED

 exception trap.

For information on 

UNPREDICTABLE

 registers, see the 

Arm

®

 Architecture Reference Manual for A-profile

architecture

.

A.2 UNPREDICTABLE instructions within an IT Block

Conditional instructions within an IT Block, described as being 

UNPREDICTABLE

 in the 

Arm

®

Architecture Reference Manual for A-profile architecture

 pseudo-code, are executed unconditionally.

The Cortex

®

-A55 core does not implement an unconditional execution policy for the following

instructions. Instead all execute conditionally:
• NEON instructions new to Arm

®

v8‑A.

• All instructions in the Arm

®

v8‑A Cryptographic Extension.

• CRC32.

A.3 Load/Store accesses crossing page boundaries

The Cortex

®

-A55 processor implements a set of behaviors for load or store accesses that cross

page boundaries.

Crossing a page boundary with different memory types or shareability attributes

The 

Arm

®

 Architecture Reference Manual for A-profile architecture

, states that a memory access

from a load or store instruction that crosses a page boundary to a memory location that

has a different memory type or shareability attribute results in 

CONSTRAINED UNPREDICTABLE

behavior.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

634

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

AArch32 UNPREDICTABLE Behaviors

Crossing a 4KB boundary with a Device access

The 

Arm

®

 Architecture Reference Manual for A-profile architecture

, states that a memory access

from a load or store instruction to Device memory that crosses a 4KB boundary results in

CONSTRAINED UNPREDICTABLE

 behavior.

Implementation (for both page boundary specifications)

For an access that crosses a page boundary, the Cortex

®

-A55 processor implements the

following behaviors:
• Store crossing a page boundary:

◦ No alignment fault.
◦ The access is split into two stores.
◦ Each store uses the memory type and shareability attributes associated with its own

address.

• Load crossing a page boundary (Device to Device and Normal to Normal):

◦ No alignment fault.
◦ The access is split into two loads.
◦ Each load uses the memory type and shareability attributes associated with its own

address.

• Load crossing a page boundary (Device to Normal and Normal to Device):

◦ The instruction might generate an alignment fault.
◦ If no fault is generated, the access is split into two loads.
◦ Each load uses the memory type and shareability attributes associated with its own

address.

A.4 Arm

®

v8‑A Debug UNPREDICTABLE behaviors

There are 

UNPREDICTABLE

 behaviors associated with Debug.

The information in this section describes which option the Cortex

®

-A55 core implements based on

the behavior.

Table A-1: Arm

®

v8‑A Debug 

UNPREDICTABLE

 behaviors

Scenario

Behavior

A32 

BKPT

 instruction with condition code not AL

The core implements the following preferred option:

Option 3: Executed unconditionally.

Address match breakpoint match only on second

halfword of an instruction

The core generates a breakpoint on the instruction, unless it is a breakpoint on the

second half of the 32-bit instruction. In this case, the breakpoint is not taken.

Address matching breakpoint on A32 instruction with

DBGBCRn.BAS=1100

The core implements the following option:

Option 1: Does match.

Address match breakpoint match on T32 instruction

at DBGBCRn+2 with DBGBCRn.BAS=1111

The core implements the following option:

Option 1: Does match.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

635

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

AArch32 UNPREDICTABLE Behaviors

Scenario

Behavior

Address mismatch breakpoint match on

T32 instruction at DBGBCRn +2 with

DBGBCRn.BAS=1111

The core implements the following option:

Option 1: Does match.

Other mismatch breakpoint matches any address in

current mode and state

The core implements the following option:

Option 2: Immediate breakpoint debug event.

Mismatch breakpoint on branch to self

The core implements the following option:

Option 2: Instruction is stepped an 

UNKNOWN

 number of times, while it

continues to branch to itself.

Link to non-existent breakpoint or breakpoint that is

not context-aware

The core implements the following option:

Option 1: No Breakpoint or Watchpoint debug event is generated, and the

LBN field of the 

linker

 reads 

UNKNOWN

.

DBGWCRn_EL1.MASK!=00000 and

DBGWCRn_EL1.BAS!=11111111

The core behaves as indicated in the sole Preference:

DBGWCRn_EL1.BAS is 

IGNORED

 and treated as if 

0x11111111

.

Address-matching Vector Catch on 32-bit T32

instruction at (vector-2)

The core implements the following option:

Option 1: Does match.

Address-matching Vector Catch on 32-bit T32

instruction at (vector+2)

The core implements the following option:

Option 1: Does match.

Address-matching Vector Catch and Breakpoint on

same instruction

The core implements the following option:

Option 2: Report Breakpoint.

Address match breakpoint with

DBGBCRn_EL1.BAS=0000

The core implements the following option:

Option 1: As if disabled.

DBGWCRn_EL1.BAS specifies a non-contiguous set

of bytes within a doubleword

The core implements the following option:

A Watchpoint debug event is generated for each byte.

A32 HLT instruction with condition code not AL

The core implements the following option:

Option 3: Executed unconditionally.

Execute instruction at a given EL when the

corresponding EDECCR bit is 1 and Halting is

allowed

The core behaves as follows:

Generates debug event and Halt no later than the instruction following the

next 

Context Synchronization operation

 (CSO) excluding 

ISB

 instruction.

Unlinked Context matching and Address mismatch

breakpoints taken to Abort mode

The core implements the following option:

Option 2: A Prefetch Abort debug exception is generated. Because the

breakpoint is configured to generate a breakpoint at PL1, the instruction at the

Prefetch Abort vector generates a Vector Catch debug event.

Note:

The debug event is subject to the same 

CONSTRAINED UNPREDICTABLE

 behavior,

therefore the Breakpoint debug event is repeatedly generated an 

UNKNOWN

number of times.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

636

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

AArch32 UNPREDICTABLE Behaviors

Scenario

Behavior

Vector Catch on Data or Prefetch abort, and taken to

Abort mode

The core implements the following option:

Option 2: A Prefetch Abort debug exception is generated. If Vector Catch is

enabled on the Prefetch Abort vector, this generates a Vector Catch debug

event.

Note:

The debug event is subject to the same 

CONSTRAINED UNPREDICTABLE

 behavior,

therefore the Breakpoint debug event is repeatedly generated an 

UNKNOWN

number of times.

H > N or H = 0 at Non-secure EL1 and EL0,

including value read from PMCR_EL0.N

The core implements:

A simple implementation where all of HPMN[4:0] are implemented, and In

Non-secure EL1 and EL0:

If H > N then M = N.

If H = 0 then M = 0.

H > N or H = 0: value read back in

MDCR_EL2.HPMN

The core implements:

A simple implementation where all of HPMN[4:0] are implemented and for

reads of MDCR_EL2.HPMN, return H.

P ≥ M and P ≠ 31: reads and writes of PM

XEVTYPER_EL0 and PMXEVCNTR_EL0

The core implements:

A simple implementation where all of SEL[4:0] are implemented, and if P ≥ M

and P ≠ 31 then the register is 

RES0

.

P ≥ M and P ≠ 31: value read in PMSELR_EL0.SEL

The core implements:

A simple implementation where all of SEL[4:0] are implemented, and if P ≥ M

and P ≠ 31 then the register is 

RES0

.

P = 31: reads and writes of PMXEVCNTR_EL0

The core implements:

RES0

.

n ≥ M: Direct access to PMEVCNTRn_EL0 and

PMEVTYPERn_EL0

The core implements:

If n ≥ N, then the instruction is 

UNALLOCATED

.

Otherwise if n ≥ M, then the register is 

RES0

.

Exiting Debug state while instruction issued through

EDITR is in flight

The core implements the following option:

Option 1: The instruction completes in Debug state before executing the

restart.

Using memory-access mode with a non-word-aligned

address

The core behaves as indicated in the sole Preference:

Does unaligned accesses, faulting if these are not permitted for the memory

type.

Access to memory-mapped registers mapped to

Normal memory

The core behaves as indicated in the sole Preference:

The access is generated, and accesses might be repeated, gathered, split, or

resized, in accordance with the rules for Normal memory, meaning the effect is

UNPREDICTABLE

.

Not word-sized accesses or (AArch64 only)

doubleword-sized accesses

The core behaves as indicated in the sole Preference:

Reads occur and return 

UNKNOWN

 data.

Writes set the accessed register(s) to 

UNKNOWN

.

External debug write to register that is being reset

The core behaves as indicated in the sole Preference:

Takes reset value.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

637

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

AArch32 UNPREDICTABLE Behaviors

Scenario

Behavior

Accessing reserved debug registers

The core deviates from Preferred behavior because the hardware cost to decode

some of these addresses in debug power domain is significantly high:

Actual behavior:

1. For reserved debug and Performance Monitors registers the response

is 

CONSTRAINED UNPREDICTABLE

 Error or 

RES0

, when any of the

following error instead of preferred 

RES0

 for reserved debug registers

0x000

-

0xCFC

 and reserved PMU registers 

0x000

-

0xF00

:

Off

Core power domain is either completely

off, or in a low-power state where the Core

power domain registers cannot be accessed.

DLK

DoubleLockStatus()

 is TRUE, OS

double-lock is locked, that is, EDPRSR.DLK

is 1.

OSLK

OSLSR_EL1.OSLK is1, OS lock is locked.

2. In addition, for reserved debug registers in the address ranges 

0x400

to 

0x4FC

 and 

0x800

 to 

0x8FC

, the response is 

CONSTRAINED

UNPREDICTABLE

 Error or 

RES0

 when the conditions in 

1

 on page 638

do not apply and:

EDAD

AllowExternalDebugAccess()

is FALSE, external debug access is

disabled.

3. For reserved Performance Monitor registers in the address ranges

0x000

 to 

0x0FC

 and 

0x400

 to 

0x47C

, the response is 

CONSTRAINED

UNPREDICTABLE

 Error, or 

RES0

 when the conditions in 

1

 on page 638

and 

2

 on page 638 do not apply, and the following errors instead of

preferred 

RES0

 for the these registers:

EPMAD

AllowExternalPMUAccess()

 is

FALSE (external Performance Monitors

access is disabled).

Clearing the 

clear-after-read

 EDPRSR bits when Core

power domain is on, and 

DoubleLockStatus()

 is

TRUE

The core behaves as indicated in the sole Preference:

Bits are not cleared to zero.

A.5 Other UNPREDICTABLE behaviors

This section describes other 

UNPREDICTABLE

 behaviors.

Table A-2: Other 

UNPREDICTABLE

 behaviors

Scenario

Description

CSSELR indicates a cache that is

not implemented.

If CSSELR indicates a cache that is not implemented, then on a read of the CCSIDR the behavior is

CONSTRAINED UNPREDICTABLE

, and can be one of the following:

The CCSIDR read is treated as 

NOP

.

The CCSIDR read is 

UNDEFINED

.

The CCSIDR read returns an 

UNKNOWN

 value (preferred).

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

638

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

AArch32 UNPREDICTABLE Behaviors

Scenario

Description

HDCR.HPMN is set to 0, or to a

value larger than PMCR.N.

If HDCR.HPMN is set to 0, or to a value larger than PMCR.N, then the behavior in Non-secure EL0

and EL1 is 

CONSTRAINED UNPREDICTABLE

, and one of the following must happen:

The number of counters accessible is an 

UNKNOWN

 non-zero value less than PMCR.N.

There is no access to any counters.

For reads of HDCR.HPMN by EL2 or higher, if this field is set to 0 or to a value larger than PMCR.N,

the core must return a 

CONSTRAINED UNPREDICTABLE

 value that is one of:

PMCR.N.

The value that was written to HDCR.HPMN.

(The value that was written to HDCR.HPMN) modulo 2h, where h is the smallest number of bits

required for a value in the range 0 to PMCR.N.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

639

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Revisions

Appendix B Revisions

This appendix describes the technical changes between released issues of this document.

B.1 Revisions

This appendix describes the technical changes between released issues of this document.

Table B-1: Issue 0000-00

Change

Location

First Confidential release for r0p0

-

Table B-2: Differences between issue 0000-00 and issue 0001-00

Change

Location

First Confidential release for

r0p1

-

Editorial changes

-

Updated the product

revision to r0p1

-

Minor updates in the

components section

2.2.1 Components

 on page 28

Added a set of timer

registers

2.2.4 About the Generic Timer

 on page 32

Updated the core dynamic

retention mode

2.4.6.5 Core dynamic retention mode

 on page 41

Updated the section

regarding configuring MMU

accesses

2.5.5.1 Configuring MMU accesses

 on page 49

Updated the section

regarding external aborts

2.5.6.3 External aborts

 on page 51

Updated the section

regarding mis-programming

contiguous hints

2.5.6.4 Mis-programming contiguous hints

 on page 52

Updated the section

regarding conflict aborts

2.5.6.5 Conflict aborts

 on page 52

Updated the direct access to

internal memory

2.6.6 Direct access to internal memory

 on page 64

Added information on

outstanding simultaneous

transactions supported

2.7.1 About the L2 memory system

 on page 71

Updated the support for

memory types section

2.7.3 Support for memory types

 on page 72

Updated the cluster

registers tables

3.1.3 AArch32 IMPLEMENTATION DEFINED register summary

 on page 88, 

3.1.4 AArch32 registers by

functional group

 on page 89

3.2.3 AArch64 implementation defined register summary

 on page 227, 

3.2.4

AArch64 registers by functional group

 on page 228

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

640

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Revisions

Change

Location

Updated the ACTLR_EL2

register

3.2.6 ACTLR_EL2, Auxiliary Control Register, EL2

 on page 235

Updated the ACTLR_EL3

register

3.2.7 ACTLR_EL3, Auxiliary Control Register, EL3

 on page 238

Updated the IFSR32_EL2

register

3.2.82 IFSR32_EL2, Instruction Fault Status Register, EL2

 on page 345

Updated the VDISR_EL2

register at EL1 using

AArch64

3.2.105.3 VDISR_EL2 at EL1 using AArch64

 on page 378

Updated the ERR0PFGCDN

register

3.3.7 ERR0PFGCDN, Error Pseudo Fault Generation Count Down Register

 on page 392

Updated the ERR0PFGCTL,

register

3.3.8 ERR0PFGCTL, Error Pseudo Fault Generation Control Register

 on page 393

Updated the PMU events

4.2.4 PMU events

 on page 463

Table B-3: Differences between issue 0001-00 and issue 0100-00

Change

Location

First Non-Confidential release for r1p0

-

Editorial changes.

-

Updated the product revision to r1p0.

-

Updated product name.

-

Global terminology change from 'processor' to 'core' for

the product.

-

Updated FCM to DSU.

-

Added ELA address size option.

2.1.3 Implementation options

 on page 25.

Updated the encoding for the L2 TLB.

2.6.6.3 Encoding for the L2 TLB

 on page 67.

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

641

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Revisions

Change

Location

Added CPU private registers.

3.1.3 AArch32 IMPLEMENTATION DEFINED register summary

 on page 88.

3.1.4 AArch32 registers by functional group

 on page 89.

3.1.21 CPUPCR, CPU Private Control Register

 on page 119.

3.1.22 CPUPMR, CPU Private Mask Register

 on page 121.

3.1.23 CPUPOR, CPU Private Operation Register

 on page 122.

3.1.24 CPUPSELR, CPU Private Selection Register

 on page 124.

3.2.3 AArch64 implementation defined register summary

 on page 227.

3.2.4 AArch64 registers by functional group

 on page 228.

3.2.31 CPUPCR_EL3, CPU Private Control Register, EL3

 on page 271.

3.2.32 CPUPMR_EL3, CPU Private Mask Register, EL3

 on page 273.

3.2.33 CPUPOR_EL3, CPU Private Operation Register, EL3

 on page 274.

3.2.34 CPUPSELR_EL3, CPU Private Selection Register, EL3

 on page 276.

Added dot product instructions introduced in Arm

®

v8.4-

A.

2.1.3 Implementation options

 on page 25.

3.1.2 AArch32 architectural system register summary

 on page 83.

3.1.4 AArch32 registers by functional group

 on page 89.

3.1.67 ID_ISAR6, Instruction Set Attribute Register 6

 on page 172.

3.2.2 AArch64 architectural system register summary

 on page 221.

3.2.4 AArch64 registers by functional group

 on page 228.

3.2.73 ID_ISAR6_EL1, AArch32 Instruction Set Attribute Register 6, EL1

 on

page 329.

3.2.58 ID_AA64ISAR0_EL1, AArch64 Instruction Set Attribute Register 0, EL1

on page 303.

Updated the CPUECTLR and CPUECTLR_EL1 registers.

3.1.20 CPUECTLR, CPU Extended Control Register

 on page 115.

3.2.30 CPUECTLR_EL1, CPU Extended Control Register, EL1

 on page 268.

Updated the Use of R15 by Instruction.

A.1 Use of R15 by Instruction

 on page 634.

Table B-4: Differences between issue 0100-00 and issue 0100-01

Change

Location

Second Non-Confidential release

for r1p0

-

Updated company name to Arm -

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

642

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Revisions

Change

Location

Updated the encoding for tag

and data in the L1 data cache

2.6.6.1 Encoding for tag and data in the L1 data cache

 on page 65

Updated the encoding for tag

and data in the L1 instruction

cache

2.6.6.2 Encoding for tag and data in the L1 instruction cache

 on page 66

Updated the transient hit

behavior

2.7.3 Support for memory types

 on page 72

Updated the descriptions

of bit[0] and bit[37] of the

CPUECTLR register

3.1.20 CPUECTLR, CPU Extended Control Register

 on page 115

Updated the traps and

enables in the ERXPFGCDN,

ERXPFGCTL, and ERXPFGF

registers

3.1.42 ERXPFGCDN, Selected Error Pseudo Fault Generation Count Down Register

 on page 141,

3.1.43 ERXPFGCTL, Selected Error Pseudo Fault Generation Control Register

 on page 142, and 

3.1.44

ERXPFGF, Selected Pseudo Fault Generation Feature Register

 on page 143

Table B-5: Differences between issue 0100-01 and issue 0200-00

Change

Location

First Non-

Confidential

release for r2p0

-

Removed Dot

Product support

instructions as an

implementation

option

2.1.3 Implementation options

 on page 25

Added PBHA

support as an

implementation

option

2.1.3 Implementation options

 on page 25 and 

2.5.7 Page Based Hardware Attributes

 on page 53

Updated transient

memory region and

non-temporal loads

content

2.6.4.1 Memory system implementation

 on page 60

Updated encoding

for tag and data in

the L1 data cache

2.6.6.1 Encoding for tag and data in the L1 data cache

 on page 65

Updated main TLB

RAM descriptor

fields

2.6.6.4 Main TLB RAM descriptor fields

 on page 68

Added AHTCR,

ATTBCR, AVTCR

registers

3.1.3 AArch32 IMPLEMENTATION DEFINED register summary

 on page 88

3.1.4 AArch32 registers by functional

group

 on page 89

3.1.8 AHTCR, Auxiliary Hypervisor Translation Control Register

 on page 98, 

3.1.13 ATTBCR,

Auxiliary Translation Table Base Control Register

 on page 103, and 

3.1.14 AVTCR, Auxiliary Virtualized Translation

Control Register

 on page 106

Updated MIDR

register

3.1.4 AArch32 registers by functional group

 on page 89 and 

3.1.76 MIDR, Main ID Register

 on page 188

Updated CCSIDR

encodings to

include 256KB and

8MB L3 cache

3.1.15 CCSIDR, Cache Size ID Register

 on page 107

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

643

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Revisions

Change

Location

Added ATCR_EL1,

ATCR_EL12,

ATCR_EL2,

ATCR_EL3, and

AVTCR_EL2

registers

3.2.3 AArch64 implementation defined register summary

 on page 227

3.2.4 AArch64 registers by functional group

on page 228, 

3.2.18 ATCR_EL1, Auxiliary Translation Control Register, EL1

 on page 248

3.2.19 ATCR_EL12, Alias to

Auxiliary Translation Control Register EL1

 on page 251, 

3.2.20 ATCR_EL2, Auxiliary Translation Control Register, EL2

on page 252, 

3.2.21 ATCR_EL3, Auxiliary Translation Control Register, EL3

 on page 254, and 

3.2.22 AVTCR_EL2,

Auxiliary Virtualized Translation Control Register, EL2

 on page 255

Updated

MIDR_EL1 register

3.2.4 AArch64 registers by functional group

 on page 228 and 

3.2.89 MIDR_EL1, Main ID Register, EL1

 on page 354

Updated

ID_AA64PFR0_EL1

register to include

CSV2 and CSV3

3.2.63 ID_AA64PFR0_EL1, AArch64 Processor Feature Register 0, EL1

 on page 311

Added

ID_AA64PFR1_EL1

register

3.2.64 ID_AA64PFR1_EL1, AArch64 Processor Feature Register 1, EL1

 on page 313

Updated

ID_PFR0_EL1

register to include

CSV2

3.2.79 ID_PFR0_EL1, AArch32 Processor Feature Register 0, EL1

 on page 341

Added

ID_PFR2_EL1

register

3.2.81 ID_PFR2_EL1, AArch32 Processor Feature Register 2, EL1

 on page 344

Updated EDPIDR2

register

5.3.14 EDPIDR3, External Debug Peripheral Identification Register 3

 on page 521

Updated the PMU

common events

5.4.3 PMCEID1, Performance Monitors Common Event Identification Register 1

 on page 529

Updated PMPIDR2

register

5.6.9 PMPIDR2, Performance Monitors Peripheral Identification Register 2

 on page 552

Table B-6: Differences between issue 0200-00 and issue 0200-01

Change

Location

Second Non-Confidential release for

r2p0

-

Editorial changes

Throughout document

Updated Dynamic power management

features

2.4.1 About power management

 on page 34

Changed "core" to "core processing

logic", and "ananke_cpu logic" to "core

processing logic"

2.4.3 Power domains

 on page 35

Updated Debug recovery mode

description

2.4.6.6 Debug recovery mode

 on page 42

Updated Conflict aborts description

2.5.6.5 Conflict aborts

 on page 52

Updated Internal exclusive monitor's

behavior

2.6.4.2 Internal exclusive monitor

 on page 61

Updated the note about nERRIRQ in

Error reporting

2.8.6 Error reporting

 on page 79

Added information on registers access

3. Register descriptions

 on page 83

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

644

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Revisions

Change

Location

Removed L2 cache reset values

for CLIDR and CLIDR_EL1 from

Identification registers table

3.1.4 AArch32 registers by functional group

 on page 89

3.2.4 AArch64 registers by functional

group

 on page 228

Updated CLIDR values and descriptions

for LoUU, LoC, Ctype2 and Ctype3

3.1.16 CLIDR, Cache Level ID Register

 on page 110

Updated description and a note in

CSSELR and CSSELR_EL1

3.1.26 CSSELR, Cache Size Selection Register

 on page 128, 

3.2.36 CSSELR_EL1, Cache Size

Selection Register, EL1

 on page 280

Updated ID_MMFR4 bit field

descriptions

3.1.72 ID_MMFR4, Memory Model Feature Register 4

 on page 181

Updated register names and fields

description

3.2 AArch64 system registers

 on page 221

Updated CLIDR_EL1 description in the

Identification registers table

3.2.4 AArch64 registers by functional group

 on page 228

Updated ID_ISAR5_EL1 reset value in

the Identification registers table

3.2.4 AArch64 registers by functional group

 on page 228

Updated ID_PFR0_EL1 reset value in

the Identification registers table

3.2.4 AArch64 registers by functional group

 on page 228

Updated CCSIDR_EL1 bit field

descriptions

3.2.23 CCSIDR_EL1, Cache Size ID Register, EL1

 on page 257

Updated CLIDR_EL1 description for

LoUU

3.2.24 CLIDR_EL1, Cache Level ID Register, EL1

 on page 260

Updated ESR_EL1 and ESR_EL3

descriptions

3.2.51 ESR_EL1, Exception Syndrome Register, EL1

 on page 293, 

3.2.53 ESR_EL3, Exception

Syndrome Register, EL3

 on page 296,

Updated ID_AA64MMFR1_EL1 bit field

descriptions

3.2.61 ID_AA64MMFR1_EL1, AArch64 Memory Model Feature Register 1, EL1

 on page 308

Updated ID_AA64MMFR2_EL1 bit field

description (new field added VARange,

[19:16])

3.2.62 ID_AA64MMFR2_EL1, AArch64 Memory Model Feature Register 2, EL1

 on page 310

Updated ID_AA64PFR1_EL1

description

3.2.64 ID_AA64PFR1_EL1, AArch64 Processor Feature Register 1, EL1

 on page 313

Updated ID_MMFR4_EL1 bit field

description

3.2.78 ID_MMFR4_EL1, AArch32 Memory Model Feature Register 4, EL1

 on page 339

Updated MDCR_EL3 bit field

description

3.2.88 MDCR_EL3, Monitor Debug Configuration Register, EL3

 on page 352

Updated register names

3.3 Error System registers

 on page 384

Updated ERR0PFGF reset value

3.3.9 ERR0PFGF, Error Pseudo Fault Generation Feature Register

 on page 395

Updated register names

3.4.40 AArch64 virtual interface control System register summary

 on page 446

Updated PMU event descriptions

4.2.4 PMU events

 on page 463

Updated L2D_CACHE_REFILL and

L3D_CACHE_REFILL description in

PMU events table

4.2.4 PMU events

 on page 463

Added information on registers access

5. Debug registers

 on page 484

Modified EDPIDR2, PMPIDR2, and

TRCPIDR2 values

5. Debug registers

 on page 484

Updated DBGBCRn_EL1 description

5.2.2 DBGBCRn_EL1, Debug Breakpoint Control Registers, EL1

 on page 497

Updated register description references

5.6.1 Memory-mapped PMU register summary

 on page 544

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

645

 of 

646

Cortex A55-html.html

Arm

®

 Cortex

®

-A55 Core  Technical Reference Manual

Document ID: 100442_0200_02_en

Issue: 02

Revisions

Change

Location

Updated register names

5.7.1 PMU snapshot register summary

 on page 555

Updated PMPCSSR, PMCIDSSR and

PMCID2SSR descriptions

5.7.2 PMPCSSR, PMU Snapshot Program Counter Sample Register

 on page 556, 

5.7.3

PMCIDSSR, PMU Snapshot CONTEXTIDR_EL1 Sample Register

 on page 557

5.7.4

PMCID2SSR, PMU Snapshot CONTEXTIDR_EL2 Sample Register

 on page 557

Updated register name

5.8.1 ETM register summary

 on page 560

Throughout document, reference is

made to ETM specification instead of

ArmARM for all ETM registers

5.8 ETM registers

 on page 560

Updated TRCAUTHSTATUS bit field

descriptions

5.8.4 TRCAUTHSTATUS, Authentication Status Register

 on page 565

Updated TRCBBCTLR bit field

descriptions

5.8.6 TRCBBCTLR, Branch Broadcast Control Register

 on page 568

Updated TRCDEVAFF0 bit field

descriptions

5.8.21 TRCDEVAFF0, Device Affinity Register 0

 on page 583

Updated TRCDEVAFF1 bit field

descriptions

5.8.22 TRCDEVAFF1, Device Affinity Register 1

 on page 583

Updated TRCEXTINSELR Figure 5-68

and bit descriptions for SEL0, SEL1,

SEL2 and SEL3

5.8.28 TRCEXTINSELR, External Input Select Register

 on page 588

Updated TRCIDR3 description

5.8.32 TRCIDR3, ID Register 3

 on page 594

Updated TRCLAR description

5.8.47 TRCLAR, Software Lock Access Register

 on page 607

Updated TRCLSR description

5.8.48 TRCLSR, Software Lock Status Register

 on page 608

Table B-7: Differences between issue 0200-01 and issue 0200-02

Change

Location

Third Non-Confidential release for r2p0

-

Editorial changes

Throughout document

Inclusive language update

2.6.1 About the L1 memory system

 on page 54

Inclusive language update

2.6.2.6 Write Streaming Mode

 on page 57

Inclusive language update

2.6.4.1 Memory system implementation

 on page 60

Replacing 

MSR

 instructions with 

sys

 instructions in AArch64

registers table

2.6.6 Direct access to internal memory

 on page 64

Inclusive language update

3.1.20 CPUECTLR, CPU Extended Control Register

 on page 115

Inclusive language update

3.2.30 CPUECTLR_EL1, CPU Extended Control Register, EL1

 on page

268

Added a description for bit[29]

3.2.37 CTR_EL0, Cache Type Register, EL0

 on page 282

Inclusive language update

3.2.90 MPIDR_EL1, Multiprocessor Affinity Register, EL1

 on page 355

Fixed incorrect register bit assignments figure

3.2.109 VTCR_EL2, Virtualization Translation Control Register, EL2

 on

page 382

Inclusive language update

3.3.10 ERR0STATUS, Error Record Primary Status Register

 on page

397

Inclusive language update

4.1.1 About debug methods

 on page 456

Inclusive language update

4.1.2 Debug functional description

 on page 457

Inclusive language update

4.1.3.1 Core interfaces

 on page 459

Copyright © 2016–2018, 2022–2023 Arm Limited (or its affiliates). All rights reserved.

Non-Confidential

Page 

646

 of 

646